NicePack/sources/Weapons/Playable/AssaultRifles/M4M203M/NiceM4203MMedicGun.uc
2022-01-21 14:25:59 +04:00

57 lines
1.8 KiB
Ucode

class NiceM4203MMedicGun extends NiceM4203AssaultRifle
config(user);
var localized string SuccessfulHealMessage;
var ScrnFakedHealingGrenade FakedNade;
replication
{
reliable if( Role == ROLE_Authority )
ClientSuccessfulHeal;
}
simulated function PostBeginPlay()
{
super.PostBeginPlay();
if ( Level.NetMode != NM_DedicatedServer ) {
SetBoneScale (58, 0.0, 'M203_EmptyShell');
FakedNade = spawn(class'ScrnFakedHealingGrenade',self);
if ( FakedNade != none ) {
//FakedNade.SetDrawScale(4.0);
SetBoneRotation('M203_Round', rot(0, 6000, 0));
// bone must have a size to properly adjust rotation
SetBoneScale (59, 0.0001, 'M203_Round');
AttachToBone(FakedNade, 'M203_Round');
}
}
}
simulated function Destroyed()
{
if ( FakedNade != none )
FakedNade.Destroy();
super.Destroyed();
}
// The server lets the client know they successfully healed someone
simulated function ClientSuccessfulHeal(int HealedPlayerCount, int HealedAmount)
{
local string str;
if( PlayerController(Instigator.Controller) != none ) {
str = SuccessfulHealMessage;
ReplaceText(str, "%c", String(HealedPlayerCount));
ReplaceText(str, "%a", String(HealedAmount));
PlayerController(Instigator.controller).ClientMessage(str, 'CriticalEvent');
}
}
defaultproperties
{
SuccessfulHealMessage="You healed %c player(-s) with %ahp"
bIsTier2Weapon=False
SkinRefs(0)="ScrnTex.Weapons.M4203M"
FireModeClass(0)=class'NiceM4203MBulletFire'
FireModeClass(1)=class'NiceM203MFire'
Description="An assault rifle with an attached healing grenade launcher. Shoots in 3-bullet fixed-burst mode."
Priority=70
InventoryGroup=4
PickupClass=class'NiceM4203MPickup'
ItemName="M4-203M Medic Rifle NW"
}