Advertisement
Guest User

Untitled

a guest
Nov 24th, 2018
288
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //=============================================================================
  2. // AnnaNavarre.
  3. //=============================================================================
  4. class AnnaNavarre extends HumanMilitary;
  5.  
  6. // ----------------------------------------------------------------------
  7. // SpawnCarcass()
  8. //
  9. // Blow up instead of spawning a carcass
  10. // ----------------------------------------------------------------------
  11.  
  12. function Carcass SpawnCarcass()
  13. {
  14.     if (bStunned)
  15.         return Super.SpawnCarcass();
  16.  
  17.     Explode();
  18.  
  19.     return None;
  20. }
  21.  
  22. function Explode()
  23. {
  24.     local SphereEffect sphere;
  25.     local ScorchMark s;
  26.     local ExplosionLight light;
  27.     local int i;
  28.     local float explosionDamage;
  29.     local float explosionRadius;
  30.  
  31.     explosionDamage = 100;
  32.     explosionRadius = 256;
  33.  
  34.     // alert NPCs that I'm exploding
  35.     AISendEvent('LoudNoise', EAITYPE_Audio, , explosionRadius*16);
  36.     PlaySound(Sound'LargeExplosion1', SLOT_None,,, explosionRadius*16);
  37.  
  38.     // draw a pretty explosion
  39.     light = Spawn(class'ExplosionLight',,, Location);
  40.     if (light != None)
  41.         light.size = 4;
  42.  
  43.     Spawn(class'ExplosionSmall',,, Location + 2*VRand()*CollisionRadius);
  44.     Spawn(class'ExplosionMedium',,, Location + 2*VRand()*CollisionRadius);
  45.     Spawn(class'ExplosionMedium',,, Location + 2*VRand()*CollisionRadius);
  46.     Spawn(class'ExplosionLarge',,, Location + 2*VRand()*CollisionRadius);
  47.  
  48.     sphere = Spawn(class'SphereEffect',,, Location);
  49.     if (sphere != None)
  50.         sphere.size = explosionRadius / 32.0;
  51.  
  52.     // spawn a mark
  53.     s = spawn(class'ScorchMark', Base,, Location-vect(0,0,1)*CollisionHeight, Rotation+rot(16384,0,0));
  54.     if (s != None)
  55.     {
  56.         s.DrawScale = FClamp(explosionDamage/30, 0.1, 3.0);
  57.         s.ReattachDecal();
  58.     }
  59.  
  60.     // spawn some rocks and flesh fragments
  61.     for (i=0; i<explosionDamage/6; i++)
  62.     {
  63.         if (FRand() < 0.3)
  64.             spawn(class'Rockchip',,,Location);
  65.         else
  66.             spawn(class'FleshFragment',,,Location);
  67.     }
  68.  
  69.     HurtRadius(explosionDamage, explosionRadius, 'Exploded', explosionDamage*100, Location);
  70. }
  71.  
  72. function Bool HasTwoHandedWeapon()
  73. {
  74.     return False;
  75. }
  76.  
  77. function float ModifyDamage(int Damage, Pawn instigatedBy, Vector hitLocation,
  78.                             Vector offset, Name damageType)
  79. {
  80.     if ((damageType == 'Stunned') || (damageType == 'KnockedOut') || (damageType == 'Poison') || (damageType == 'PoisonEffect'))
  81.         return 0;
  82.     else
  83.         return Super.ModifyDamage(Damage, instigatedBy, hitLocation, offset, damageType);
  84. }
  85.  
  86. function GotoDisabledState(name damageType, EHitLocation hitPos)
  87. {
  88.     if (!bCollideActors && !bBlockActors && !bBlockPlayers)
  89.         return;
  90.     if (CanShowPain())
  91.         TakeHit(hitPos);
  92.     else
  93.         GotoNextState();
  94. }
  95.  
  96. defaultproperties
  97. {
  98.      CarcassType=Class'DeusEx.AnnaNavarreCarcass'
  99.      WalkingSpeed=0.280000
  100.      bImportant=True
  101.      bInvincible=True
  102.      CloseCombatMult=0.500000
  103.      BaseAssHeight=-18.000000
  104.      InitialInventory(0)=(Inventory=Class'DeusEx.WeaponAssaultGun')
  105.      InitialInventory(1)=(Inventory=Class'DeusEx.Ammo762mm',Count=12)
  106.      InitialInventory(2)=(Inventory=Class'DeusEx.WeaponCombatKnife')
  107.      BurnPeriod=5.000000
  108.      bHasCloak=True
  109.      CloakThreshold=100
  110.      walkAnimMult=1.000000
  111.      bIsFemale=True
  112.      GroundSpeed=220.000000
  113.      BaseEyeHeight=38.000000
  114.      Health=300
  115.      HealthHead=400
  116.      HealthTorso=300
  117.      HealthLegLeft=300
  118.      HealthLegRight=300
  119.      HealthArmLeft=300
  120.      HealthArmRight=300
  121.      Mesh=LodMesh'DeusExCharacters.GFM_TShirtPants'
  122.      DrawScale=1.100000
  123.      MultiSkins(0)=Texture'DeusExCharacters.Skins.AnnaNavarreTex0'
  124.      MultiSkins(1)=Texture'DeusExItems.Skins.PinkMaskTex'
  125.      MultiSkins(2)=Texture'DeusExItems.Skins.PinkMaskTex'
  126.      MultiSkins(3)=Texture'DeusExItems.Skins.GrayMaskTex'
  127.      MultiSkins(4)=Texture'DeusExItems.Skins.BlackMaskTex'
  128.      MultiSkins(5)=Texture'DeusExCharacters.Skins.AnnaNavarreTex0'
  129.      MultiSkins(6)=Texture'DeusExCharacters.Skins.PantsTex9'
  130.      MultiSkins(7)=Texture'DeusExCharacters.Skins.AnnaNavarreTex1'
  131.      CollisionHeight=47.299999
  132.      BindName="AnnaNavarre"
  133.      FamiliarName="Anna Navarre"
  134.      UnfamiliarName="Anna Navarre"
  135. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement