Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var(CreatureCarcass) enum EXUBloodType // Not in the clinical sense! copied from EXUScriptedPawn
- {
- BLOOD_Red,
- BLOOD_Green,
- BLOOD_Blue,
- BLOOD_Brown, // **** blood? What the ****
- BLOOD_White,
- BLOOD_MYBLOODvvvISvvvvvvBLACK, // UT3 taunts = hilarious
- BLOOD_None // For vehicles and **** if you don't want, say, an oily black discharge (that sounds really nasty)
- }
- Hemospectrum; // Couldn't resist the Homestuck reference because Homestuck ****ing kicks ass
- simulated function PostBeginPlay()
- {
- Super.PostBeginPlay();
- if(Instigator!=none && Instigator.IsA('EXUScriptedPawn'))
- {
- if(EXUScriptedPawn(Instigator).Hemospectrum==BLOOD_Red)
- Hemospectrum=BLOOD_Red;
- if(EXUScriptedPawn(Instigator).Hemospectrum==BLOOD_Green)
- Hemospectrum=BLOOD_Green;
- if(EXUScriptedPawn(Instigator).Hemospectrum==BLOOD_Blue)
- Hemospectrum=BLOOD_Blue;
- if(EXUScriptedPawn(Instigator).Hemospectrum==BLOOD_Brown)
- Hemospectrum=BLOOD_Brown;
- if(EXUScriptedPawn(Instigator).Hemospectrum==BLOOD_White)
- Hemospectrum=BLOOD_White;
- if(EXUScriptedPawn(Instigator).Hemospectrum==BLOOD_MYBLOODvvvISvvvvvvBLACK)
- Hemospectrum=BLOOD_MYBLOODvvvISvvvvvvBLACK;
- if(EXUScriptedPawn(Instigator).Hemospectrum==BLOOD_None)
- Hemospectrum=BLOOD_None;
- // broadcastmessage("Post-process: Instigator is: "$Instigator$" and its Hemospectrum is "$EXUScriptedPawn(Instigator).Hemospectrum$". Carcass Hemospectrum is: "$Hemospectrum);
- // log("Post-process: Instigator is: "$Instigator$" and its Hemospectrum is "$EXUScriptedPawn(Instigator).Hemospectrum$". Carcass Hemospectrum is: "$Hemospectrum);
- }
- }
- function TakeDamage( int Damage, Pawn InstigatedBy, Vector Hitlocation,
- Vector Momentum, name DamageType)
- {
- local BloodSpurtEXU b;
- if(Hemospectrum!=BLOOD_None)
- {
- b = Spawn(class'BloodSpurtEXU',,,HitLocation,rot(16384,0,0));
- if(b!=none)
- {
- // log("Spawned a "$b);
- // broadcastmessage("Spawned a "$b);
- if(Hemospectrum==BLOOD_Red)
- b.InitRed();
- if(Hemospectrum==BLOOD_Green)
- b.InitGreen();
- if(Hemospectrum==BLOOD_Blue)
- b.InitBlue();
- if(Hemospectrum==BLOOD_Brown)
- b.InitBrown();
- if(Hemospectrum==BLOOD_White)
- b.InitWhite();
- if(Hemospectrum==BLOOD_MYBLOODvvvISvvvvvvBLACK)
- b.InitBlack();
- }
- }
- if ( !bPermanent )
- {
- if ( (DamageType == 'Corroded') && (Damage >= 100) )
- {
- bCorroding = true;
- GotoState('Corroding');
- }
- else
- Super.TakeDamage(Damage, instigatedBy, HitLocation, Momentum, DamageType);
- }
- }
- function CreateReplacement()
- {
- local EXUCreatureChunks carc;
- if (bHidden)
- return;
- if ( bodyparts[0] != None )
- carc = Spawn(class'EXUCreatureChunks',,, Location + ZOffset[0] * CollisionHeight * vect(0,0,1));
- if (carc != None)
- {
- carc.TrailSize = Trails[0];
- carc.Mesh = bodyparts[0];
- carc.bMasterChunk = true;
- carc.Initfor(self);
- carc.Bugs = Bugs;
- if ( Bugs != None )
- Bugs.SetBase(carc);
- Bugs = None;
- if(Hemospectrum==BLOOD_Red)
- carc.Hemospectrum=BLOOD_Red;
- if(Hemospectrum==BLOOD_Green)
- carc.Hemospectrum=BLOOD_Green;
- if(Hemospectrum==BLOOD_Blue)
- carc.Hemospectrum=BLOOD_Blue;
- if(Hemospectrum==BLOOD_Brown)
- carc.Hemospectrum=BLOOD_Brown;
- if(Hemospectrum==BLOOD_White)
- carc.Hemospectrum=BLOOD_White;
- if(Hemospectrum==BLOOD_MYBLOODvvvISvvvvvvBLACK)
- carc.Hemospectrum=BLOOD_MYBLOODvvvISvvvvvvBLACK;
- if(Hemospectrum==BLOOD_None)
- carc.Hemospectrum=BLOOD_None;
- }
- else if ( Bugs != None )
- Bugs.Destroy();
- }
- simulated function HitWall(vector HitNormal, actor Wall)
- {
- local BloodSpurtEXU b;
- if(Hemospectrum!=BLOOD_None)
- {
- b = Spawn(class'BloodspurtEXU',,,,Rotator(HitNormal));
- if(b!=none)
- {
- // log("Spawned a "$b);
- // broadcastmessage("Spawned a "$b);
- if(Hemospectrum==BLOOD_Red)
- b.InitRed();
- if(Hemospectrum==BLOOD_Green)
- b.InitGreen();
- if(Hemospectrum==BLOOD_Blue)
- b.InitBlue();
- if(Hemospectrum==BLOOD_Brown)
- b.InitBrown();
- if(Hemospectrum==BLOOD_White)
- b.InitWhite();
- if(Hemospectrum==BLOOD_MYBLOODvvvISvvvvvvBLACK)
- b.InitBlack();
- b.RemoteRole = ROLE_None;
- }
- }
- Velocity = 0.7 * (Velocity - 2 * HitNormal * (Velocity Dot HitNormal));
- Velocity.Z *= 0.9;
- if ( Abs(Velocity.Z) < 120 )
- {
- bBounce = false;
- Disable('HitWall');
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement