Mostly Harmless
Legacy:WeaponFire (UT2003)
Weapons in UT2003 have been divided up into multiple actors, of which this one is intimately involved. WeaponFire actors and their children form the FireMode[i] array in Weapon which manifests itself on the screen as the different modes of firing a weapon can do (typically the primary and secondary fire). The properties for the firing of a weapon reside in the weaponfire classes, including fire rate, damage, etc.
Properties[edit]
- Weapon (Weapon)
- Points to the weapon this WeaponFire belongs to.
- ThisModeNum (int)
- Either 0 or 1 depending on which position in the weapon's FireMode array this WeaponFire is.
- PreFireAnim (Name)
- Animation played before firing starts.
- FireAnim (Name)
- Animation played when firing starts.
- FireLoopAnim (Name)
- FireEndAnim (Name)
- Animation played when firing ends.
- ReloadAnim (Name)
- PreFireAnimRate (float)
- FireAnimRate (float)
- FireLoopAnimRate (float)
- FireEndAnimRate (float)
- ReloadAnimRate (float)
- TweenTime (float)
- Used to create fluent transitions between animations. Old anim will fade into new one depending on the given time.
- FireSound (Sound)
- ReloadSound (Sound)
- NoAmmoSound (Sound)
- FireForce (String)
- Force FeedBack file to play with the .ifr file
- PreFireForce (String)
- PreFireTime (float)
- seconds before first shot*/
- FireRate (float)
- seconds between shots*/
- MaxHoldTime (float)
- Maximum value to clamp HoldTime.
- HoldTime (float)
- How long the fire button has been held, in seconds. Great for chargeable weapons.
- bFireOnRelease ()
- if true, shot will be fired when button is released, HoldTime will be the time the button was held for*/
- bWaitForRelease ()
- if true, fire button must be released between each shot*/
- bModeExclusive ()
- if true, no other fire modes can be active at the same time as this one*/
- AmmoClass (class<Ammunition>)
- AmmoPerFire (int)
- Ammount of Ammo used when gun fired
- AmmoClipSize (int)
- Load (float)
- Ammo the firemode wants to consume. May vary if the firemode uses variable amounts of ammo. Automatically set to be equal to AmmoPerFire initially.
- ShakeRotMag (vector)
- how far to rot view*/
- ShakeRotRate (vector)
- how fast to rot view*/
- ShakeRotTime ()
- how much time to rot the instigator's view*/
- ShakeOffsetMag (vector)
- max view offset vertically*/
- ShakeOffsetRate (vector)
- how fast to offset view vertically*/
- ShakeOffsetTime ()
- how much time to offset view*/
- ProjectileClass (class<Projectile>)
- Which projectile to create when firing
- BotRefireRate (float)
- AI setting, for how fast bot can fire - 0.99 highest (for assault rifle) (Foxpaw: I believe this is actually the probability that a bot will continue firing in "full automatic" as opposed to stopping firing briefly and then resuming the next time it thinks it has a good shot. The higher this value is, the more the bot will "spray and pray" as opposed to taking aimed shots.)
- WarnTargetPct (float)
- AI & Projectile setting, warns target - for bot dodging etc
- bSplashDamage (bool)
- AI setting, lets bot know that weapon causes plash damage
- bSplashJump (bool)
- bRecommendSplashDamage (bool)
- AI setting, try to hit people with splash damage e.g. bouncing people with rockets
- bTossed (bool)
- AI setting, tells bots to launch projectile up at an angle, e.g. for grenades.
- bLeadTarget (bool)
- AI setting for prjectile so that bot aims ahead of target
- bInstantHit (bool)
- AI setting for intant hit weapons so bot aim at target
- bPawnRapidFireAnim ()
- for determining what anim the firer should play*/
- bReflective ()
- bAttachSmokeEmitter (bool)
- bAttachFlashEmitter (bool)
- FlashEmitterClass (class<xEmitter>)
- FlashEmitter (xEmitter)
- SmokeEmitterClass (class<xEmitter>)
- SmokeEmitter (xEmitter)
- AimError (float)
- 0=none 1000=quite a bit*/
- Spread (float)
- rotator units. no relation to AimError*/
- SpreadStyle (ESpreadStyle)
- How the shots spread. Has four values: SS_None, SS_Random, where spread is max random angle deviation, SS_Line where spread is angle between each projectile and SS_Ring.
- DamageAtten (float)
- attenuate instant-hit/projectile damage by this multiplier*/
Non-editable[edit]
- ServerStartFireTime (float)
- NextFireTime (float)
- Minimum required Level.timeSeconds for the engine to call ModeDoFire().
- bIsFiring ()
- Used by the engine to decide if ModeDoFire() has to be called. It's set by Weapon.startFire(mode) and cleared by Weapon.stopFire(mode).
- bNowWaiting ()
- bServerDelayStopFire ()
- bServerDelayStartFire ()
- FireCount (int)
Known Subclasses[edit]
+-BallTarget +-InstantFire | +-AssaultFire | +-MinigunFire | | +-MinigunAltFire | +-ShockBeamFire | | +-SuperShockBeamFire | +-SniperFire +-LinkFire +-PainterFire +-[[PainterZoom +-ProjectileFire | +-AssaultGrenade | +-BallShot | +-BioChargedFire | +-BioFire | +-FlakAltFire | +-FlakFire | +-LinkAltFire | +-RedeemerFire | | +-RedeemerGuidedFire | +-RocketFire | +-RocketMultiFire | +-ShockProjFire | +-TransFire +-ShieldAltFire +-ShieldFire +-SniperZoom +-TransRecall
----
Daid303: Is this page going to be updated for UT2004, or stays to UT2003, and a new one for UT2004? Anyhow. WeaponFire in UT2004 isn't an Actor anymore. And basicly that sucks. They hacked back in SetTimer, Spawn and Trace BUT, the Timer is buggie, after too many hours debugging I found out that you CAN'T call a new SetTimer() in a Timer() event. Hurray for that.
Mysterial: If you could see for yourself the performance improvement after converting WeaponFire to an Object subclass you wouldn't think that sucks so much. Anyway, about Timer(), have you posted to the mod mailing list about it, or emailed anyone at Epic, or anything? Sure would do a whole lot more towards getting it fixed.
OlympusMons: Need to get some stuff happening for the ut2004 weaponfire class.
----
Category:Legacy Class (UT2003)
Category:Legacy Class Tree
Category:Legacy To Do – add functions and bring properties into standard format