*~@;d<Wd9V$xxuKËS.;NoneEngineCore BDPropaneAdvancedEngine DOTZEngineSystemPropaneWeapon PickupClass StaticMeshMeshSpawnProjectileExplodeLocalRandSpin CreateFireHitWallLandedPhysicsVolumeChange BeginPlayPostBeginPlayGrenadeStandIdle GrenadeHitNotify_SpawnProjectileGrenadeCrouchIdleUser SpawnDelay GrenadeFireunBurningMesh FireActorExplosionEmitterSmallFireActorVectorbCanDamageSelf WeaponMode HitAnimNameCrouchIdleAnimNameStandIdleAnimName FireAnimNamePawnAnimationPackage TakeDamage MultiTimer BounceSoundSpawnProjectileEx OfficialName HitSpreadFullAmmoMessageActionPickupMessagePropaneAmmunitionPropaneAttachment WaterVolumeDamage ItemNameMomentumTransferCollisionRadius DrawTypeCollisionHeightGetViewRotation SoundVolume FireOffsetPhysicsPropanePickup ReloadCount bProjTargetbFixedRotationDirPickupAmmoCount GetFireStart ProcessTouch LifeSpanAttachmentClass MyDamageTypePropaneProjectileProjectileFire AmmoName FireSound DamageRadiusbRotateToDesiredbBounceAutoSwitchPriorityInventoryGroupProjectileClassInventoryTypeMaxAmmoGrenadeAmmunitionClass DamagePerSec aimerrorSetStaticMeshDesiredRotation AdjustAim AmmoType RotationRatebCollideWorld AdjustedAimSpeedFire spinRate instigatedByDirStart Momentum HitLocationWall NewVolume HitNormalOther InstigatorOwnerProptemp ScriptTextXYAdvancedWeaponZi Location Rotation IgnitionTime bSourceFadesbFadeWhenBaseDestroyedAdvancedProjectileAdvancedWeaponAttachmentExtinguishVolumetimerID VelocityWeapon Projectile DamageTypePhysicsVolumeEmitterPawn SkeletalMeshStaticReticuleActor FadeStepYawRangedRollDOTZGrenadeWeaponDOTZProjectileBaseDOTZGrenadePickupDOTZBulletDamageDOTZAmmunitionBase BBParticles DOTZXWeaponsBBPMolotovImpactRangedGrenadeBounceMixdownMixdownRangedGrenadeShoot DOTZItemsSmallMolotovFireMedMolotovFirePitchSoundClassPackageConst TextBufferObject FunctionRotatorStruct SpawnDir SpawnLocnSPAWN_DELAY_TIMER GRENADEIDBouncedMyFireMyFire2randyrandxStructPropertyClassPropertyObjectPropertyFloatProperty BoolProperty IntProperty propanetank 3PPropane PropTank -<2ˬƽ-] Can't carry more Propane TanksR.]'&Press Action to take the Propane TankP  ' :/2+Q"OE.0j)6I +9F:L?KC$4C95$A7$ A/8528zw̃ebL9L9+$?&]DOTZAHumans.3PGrenade%$#"! ,$+] Propane TankH@"=M"::A B4BN D3] Propane Gas  $!I!* &"(A # R>  9?{69?6?9?69?,-(o$a * 0ta@69D9?,69D9?,69D9?, % g] a -(-', %%, 9D9?9?, 9D9?9?,a -(,%,-'-'6 HD6 9? 6 9? o$~   4382,!99  ;Fd9?69?'6'9?69?'6'ah@@( `N// Copyright (C) 2005 Brainbox Games. All Rights Reserved. // September 27, 2005 /** * GrenadeProjectile - * * @version $1.0$ * @author Jesse (Jesse@digitalextremes.com) * @date Nov 2003 */ class PropaneProjectile extends DOTZProjectileBase; const GRENADEID = 223232; var int Bounced; var sound BounceSound; var class FireActor; var class SmallFireActor; var StaticMesh unBurningMesh; /***************************************************************** * PostBeginPlay * Give your newly spawned projectile a velocity ***************************************************************** */ function PostBeginPlay() { local vector Dir; //Give your projectile a velocity Dir = vector(Rotation); velocity = (speed * Dir) + owner.velocity; LocalRandSpin(12000); if (abs(RotationRate.Pitch)<10000){RotationRate.Pitch=10000;} if (abs(RotationRate.Roll)<10000) {RotationRate.Roll=10000;} SetMultiTimer(GRENADEID, 3, false); Super.PostBeginPlay(); } /***************************************************************** * RandSpin ***************************************************************** */ function LocalRandSpin(float spinRate) { DesiredRotation = RotRand(); RotationRate.Yaw = spinRate * 2 *FRand() - spinRate; RotationRate.Pitch = spinRate * 2 *FRand() - spinRate; RotationRate.Roll = spinRate * 2 *FRand() - spinRate; } /***************************************************************** * MultiTimer * Grenades explode after 3 seconds ***************************************************************** */ function MultiTimer(int timerID){ // if (timerID == GRENADEID) { // Explode(Location, vect(0,0,1)); // } // else super.MultiTimer( timerID ); } /***************************************************************** * Landed ***************************************************************** */ simulated function Landed( vector HitNormal ){ HitWall( HitNormal, None ); } /***************************************************************** * HitWall ***************************************************************** */ simulated function HitWall(vector HitNormal, actor Wall){ Velocity = 0.4*((Velocity dot HitNormal) * HitNormal * -2 + Velocity); speed = VSize(Velocity); //PlaySound(ImpactSound, SLOT_Misc, 1.5,,150,,true); if ( Velocity.Z > 400 ) Velocity.Z = 0.5 * (400 + Velocity.Z); else if ( speed < 20 ) { bBounce = False; SetPhysics(PHYS_None); } PlaySound(BounceSound); } /***************************************************************** * Explode ***************************************************************** */ function Explode(vector hitLocation, vector hitnormal){ local Fire MyFire, MyFire2; local int i, randy, randx; super.Explode(hitlocation, hitnormal); MyFire = Spawn(FireActor,,,hitlocation); MyFire.bFadeWhenBaseDestroyed = false; MyFire.bSourceFades = true; MyFire.DamagePerSec = 12; MyFire.IgnitionTime = 0; // MyFire.ChildFireType = class'DOTZItems.MediumFire'; MyFire.CreateFire(); for (i=0;i<4;i++){ randy = Frand() * 500 - 250; randx = Frand() * 500 - 250; MyFire2 = Spawn(SmallFireActor,,,hitlocation); MyFire2.bFadeWhenBaseDestroyed = false; MyFire2.FadeStep = 5; MyFire2.IgnitionTime = 0; MyFire2.DamagePerSec = 8; MyFire2.bSourceFades = true; // MyFire2.ChildFireType = class'DOTZItems.MediumFire'; MyFire2.bCollideWorld = true; //so you don't fall into //the world and screw yourself right up MyFire2.Velocity.Z = 800; MyFire2.Velocity.Y = randx; MyFire2.Velocity.X = randy; MyFire2.SetPhysics(PHYS_Falling); MyFire2.CreateFire(); } } /** */ function ProcessTouch(Actor Other, Vector HitLocation) { // } /***************************************************************** * TakeDamage ***************************************************************** */ function TakeDamage( int Damage, Pawn instigatedBy, Vector hitlocation, Vector momentum, class damageType) { Super.TakeDamage(100, instigatedBy, hitlocation,momentum,damagetype); Explode(Location, vect(0,0,1)); } event PhysicsVolumeChange( PhysicsVolume NewVolume ){ local emitter temp; if ( class'ExtinguishVolume' == NewVolume || NewVolume.Isa('WaterVolume')){ SetStaticMesh(UnBurningMesh); } foreach basedactors(class'Emitter', temp){ temp.destroy(); } super.PhysicsVolumeChange( NewVolume); } //=========================================================================== // DefaultProperties //=========================================================================== P // Copyright (C) 2005 Brainbox Games. All Rights Reserved. // September 27, 2005 /***************************************************************** * GrenadePickup - * * @version $1.0$ * @author Jesse (Jesse@digitalextremes.com) * @date Jan 2004 ***************************************************************** */ class PropanePickup extends DOTZGrenadePickup placeable; //=========================================================================== // DefaultProperties //=========================================================================== H // Copyright (C) 2005 Brainbox Games. All Rights Reserved. // September 27, 2005 /***************************************************************** * GrenadeAttachment - * * @version $1.0$ * @author Jesse (Jesse@digitalextremes.com) * @date Nov 2003 ***************************************************************** */ class PropaneAttachment extends AdvancedWeaponAttachment; //=========================================================================== // DefaultProperties //===========================================================================  223232(1B 204' 6,d #? 6Cx  ;G9a ( );** L!// Copyright (C) 2005 Brainbox Games. All Rights Reserved. // September 27, 2005 /***************************************************************** * GrenadeWeapon - a pseudo-weapon for throwing grenades by hand. * * @version $1.0$ * @author Jesse (Jesse@digitalextremes.com) * @author Neil Gower (neilg@digitalextremes.com) * @date Jan 2004 ***************************************************************** */ class PropaneWeapon extends DOTZGrenadeWeapon config(user); // Manually tune to be in-synch w/ throw anim. See also FireOffset. var() float SpawnDelay; // internal... var private Rotator SpawnDir; var private Vector SpawnLocn; const SPAWN_DELAY_TIMER = 4382; /** * A quick hack, since the default props don't seem to be sticking. */ function BeginPlay() { super.BeginPlay(); default.staticReticule = none; StaticReticule = none; } /** */ function SpawnProjectile(){ local Vector Start, X,Y,Z; Owner.MakeNoise(1.0); GetAxes(Instigator.GetViewRotation(),X,Y,Z); Start = GetFireStart(X,Y,Z); AdjustedAim = Instigator.AdjustAim(AmmoType, Start, AimError); // all timer for the animation to get to the release point before // spawning... SpawnDir = AdjustedAim; SpawnLocn = start; DOTZAmmunitionBase(AmmoType).SpawnProjectileEx( SpawnLocn, SpawnDir ,Instigator); } /** * Replaces default weapon behaviour so that projectile is spawned * during the fire animation (instead of before). */ function ProjectileFire() { SetMultiTimer( SPAWN_DELAY_TIMER, spawnDelay, false ); } /***************************************************************** * Notify_SpawnProjectile * Called from the animation to let us know the best point to release the grenade ***************************************************************** */ function Notify_SpawnProjectile(){ SpawnProjectile(); } //=========================================================================== // DefaultProperties //=========================================================================== 3[0r a/!1/a2 Ma10 x // Copyright (C) 2005 Brainbox Games. All Rights Reserved. // September 27, 2005 /***************************************************************** * GrenadeAmmunition - * * @version 1.0 * @author Jesse (jesse@digitalextremes.com) * @date Nov 2003 * description this class is for the simple weapon ***************************************************************** */ class PropaneAmmunition extends DOTZAmmunitionBase; //=========================================================================== // DefaultProperties //=========================================================================== 7 (b? 8A 9D  .*   ZZYDZY]Y]`YjY^j{ZYl`_YYjYYoY|Y}Y\YAYMmpoW poHm\ZpYoY@YklhZOYI^ YJli^^^'^nvotoSYKnuZTlClXj[YxZqYwYY[Ym^BmT^WoEjV^G^U^(Yy^nLjsZNjrnZmnmmYLoFZGY YVYUYPXQZRXSY~YX^BjBr(g x/&^ E0(f Q0;a ^0(q k09e w0(c D1<rQ1(h C4%f O4(i \4a h4b u4*` B5;p O5;n \5/mi5;m V79k c73b p73c }73_ J80bW8FYy9)R?`?n?|?(f J@JW@3~aD pD#f |D$z IE#UE(xELTF h`H%d HJ uUJc JOLTOl4kN`Qe Kl4[ Wl4S rd EBQ0g n0c {'