Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //=============================================================================
- // AnnaNavarre.
- //=============================================================================
- class AnnaNavarre extends HumanMilitary;
- // ----------------------------------------------------------------------
- // SpawnCarcass()
- //
- // Blow up instead of spawning a carcass
- // ----------------------------------------------------------------------
- function Carcass SpawnCarcass()
- {
- if (bStunned)
- return Super.SpawnCarcass();
- Explode();
- return None;
- }
- function Explode()
- {
- local SphereEffect sphere;
- local ScorchMark s;
- local ExplosionLight light;
- local int i;
- local float explosionDamage;
- local float explosionRadius;
- explosionDamage = 100;
- explosionRadius = 256;
- // alert NPCs that I'm exploding
- AISendEvent('LoudNoise', EAITYPE_Audio, , explosionRadius*16);
- PlaySound(Sound'LargeExplosion1', SLOT_None,,, explosionRadius*16);
- // draw a pretty explosion
- light = Spawn(class'ExplosionLight',,, Location);
- if (light != None)
- light.size = 4;
- Spawn(class'ExplosionSmall',,, Location + 2*VRand()*CollisionRadius);
- Spawn(class'ExplosionMedium',,, Location + 2*VRand()*CollisionRadius);
- Spawn(class'ExplosionMedium',,, Location + 2*VRand()*CollisionRadius);
- Spawn(class'ExplosionLarge',,, Location + 2*VRand()*CollisionRadius);
- sphere = Spawn(class'SphereEffect',,, Location);
- if (sphere != None)
- sphere.size = explosionRadius / 32.0;
- // spawn a mark
- s = spawn(class'ScorchMark', Base,, Location-vect(0,0,1)*CollisionHeight, Rotation+rot(16384,0,0));
- if (s != None)
- {
- s.DrawScale = FClamp(explosionDamage/30, 0.1, 3.0);
- s.ReattachDecal();
- }
- // spawn some rocks and flesh fragments
- for (i=0; i<explosionDamage/6; i++)
- {
- if (FRand() < 0.3)
- spawn(class'Rockchip',,,Location);
- else
- spawn(class'FleshFragment',,,Location);
- }
- HurtRadius(explosionDamage, explosionRadius, 'Exploded', explosionDamage*100, Location);
- }
- function Bool HasTwoHandedWeapon()
- {
- return False;
- }
- function float ModifyDamage(int Damage, Pawn instigatedBy, Vector hitLocation,
- Vector offset, Name damageType)
- {
- if ((damageType == 'Stunned') || (damageType == 'KnockedOut') || (damageType == 'Poison') || (damageType == 'PoisonEffect'))
- return 0;
- else
- return Super.ModifyDamage(Damage, instigatedBy, hitLocation, offset, damageType);
- }
- function GotoDisabledState(name damageType, EHitLocation hitPos)
- {
- if (!bCollideActors && !bBlockActors && !bBlockPlayers)
- return;
- if (CanShowPain())
- TakeHit(hitPos);
- else
- GotoNextState();
- }
- defaultproperties
- {
- CarcassType=Class'DeusEx.AnnaNavarreCarcass'
- WalkingSpeed=0.280000
- bImportant=True
- bInvincible=True
- CloseCombatMult=0.500000
- BaseAssHeight=-18.000000
- InitialInventory(0)=(Inventory=Class'DeusEx.WeaponAssaultGun')
- InitialInventory(1)=(Inventory=Class'DeusEx.Ammo762mm',Count=12)
- InitialInventory(2)=(Inventory=Class'DeusEx.WeaponCombatKnife')
- BurnPeriod=5.000000
- bHasCloak=True
- CloakThreshold=100
- walkAnimMult=1.000000
- bIsFemale=True
- GroundSpeed=220.000000
- BaseEyeHeight=38.000000
- Health=300
- HealthHead=400
- HealthTorso=300
- HealthLegLeft=300
- HealthLegRight=300
- HealthArmLeft=300
- HealthArmRight=300
- Mesh=LodMesh'DeusExCharacters.GFM_TShirtPants'
- DrawScale=1.100000
- MultiSkins(0)=Texture'DeusExCharacters.Skins.AnnaNavarreTex0'
- MultiSkins(1)=Texture'DeusExItems.Skins.PinkMaskTex'
- MultiSkins(2)=Texture'DeusExItems.Skins.PinkMaskTex'
- MultiSkins(3)=Texture'DeusExItems.Skins.GrayMaskTex'
- MultiSkins(4)=Texture'DeusExItems.Skins.BlackMaskTex'
- MultiSkins(5)=Texture'DeusExCharacters.Skins.AnnaNavarreTex0'
- MultiSkins(6)=Texture'DeusExCharacters.Skins.PantsTex9'
- MultiSkins(7)=Texture'DeusExCharacters.Skins.AnnaNavarreTex1'
- CollisionHeight=47.299999
- BindName="AnnaNavarre"
- FamiliarName="Anna Navarre"
- UnfamiliarName="Anna Navarre"
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement