Worst-case scenario: the UEd Goblin wipes the map and burns down your house.
UE2:WeaponFire (UT2004)
From Unreal Wiki, The Unreal Engine Documentation Site
Object >> WeaponFire |
Contents
- 1 Properties
- 1.1 Property group 'WeaponFire'
- 1.2 Internal variables
- 1.2.1 bInstantStop
- 1.2.2 bIsFiring
- 1.2.3 bNowWaiting
- 1.2.4 bServerDelayStartFire
- 1.2.5 bServerDelayStopFire
- 1.2.6 bTimerLoop
- 1.2.7 FireCount
- 1.2.8 Instigator
- 1.2.9 Level
- 1.2.10 NextFireTime
- 1.2.11 NextTimerPop
- 1.2.12 Owner
- 1.2.13 SavedFireProperties
- 1.2.14 ServerStartFireTime
- 1.2.15 TimerInterval
- 1.2.16 TransientSoundRadius
- 1.2.17 TransientSoundVolume
- 2 Enums
- 3 Functions
- Package:
- Engine
- Direct subclasses:
- InstantFire, BallTarget, FM_Turret_Minigun_AltFire, FM_Turret_AltFire_Shield, ONSAVRiLAltFire, LinkFire, ONSGrenadeAltFire, ONSMineLayerAltFire, PainterFire, PainterZoom, ProjectileFire, ShieldAltFire, ShieldFire, SniperZoom, TransRecall
- This class in other games:
- UT2003
Abstract base class for weapon fire mode implementations.
Properties
Property group 'WeaponFire'
See WeaponFire property group WeaponFire.
Internal variables
bInstantStop
Type: bool
bIsFiring
Type: bool
bNowWaiting
Type: bool
bServerDelayStartFire
Type: bool
bServerDelayStopFire
Type: bool
bTimerLoop
Type: bool
FireCount
Type: int
Instigator
Type: Pawn
Level
Type: LevelInfo
NextFireTime
Type: float
NextTimerPop
Type: float
Owner
Type: Actor
SavedFireProperties
Type: Actor.FireProperties
ServerStartFireTime
Type: float
TimerInterval
Type: float
TransientSoundRadius
Type: float
Default value: 400.0
TransientSoundVolume
Type: float
Default value: 0.5
Enums
ESpreadStyle
- SS_None
- SS_Random
- spread is max random angle deviation
- SS_Line
- spread is angle between each projectile
- SS_Ring
Functions
Native code
Fire mode updating
void UWeaponFire::ModeTick( FLOAT DeltaSeconds ) { guard(UWeaponFire::ModeTick); if ( !Weapon || Weapon->bDeleteMe || !Instigator || Instigator->bDeleteMe ) return; // WeaponFire timer if ( TimerInterval != 0.f ) { if ( NextTimerPop < Level->TimeSeconds ) { eventTimer(); if ( bTimerLoop ) NextTimerPop = NextTimerPop + TimerInterval; else TimerInterval = 0.f; } } eventModeTick(DeltaSeconds); FLOAT CurrentTime = Weapon->Level->TimeSeconds; if ( (bIsFiring && !bFireOnRelease) || ((bInstantStop || !bIsFiring) && bFireOnRelease) || (HoldTime > MaxHoldTime && MaxHoldTime > 0.0f) ) { if (CurrentTime > NextFireTime && (bInstantStop || !bNowWaiting) ) { eventModeDoFire(); if (bWaitForRelease) bNowWaiting = true; } } else if (bWaitForRelease && CurrentTime >= NextFireTime) { bNowWaiting = false; if (HoldTime == 0.0f) eventModeHoldFire(); HoldTime += DeltaSeconds; } bInstantStop = false; unguard; }
Events
ModeDoFire
event ModeDoFire ()
ModeHoldFire
event ModeHoldFire ()
ModeTick
event ModeTick (float dt)
SetInitialState
simulated event SetInitialState ()
Timer
event Timer ()