Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class ArtifactCraftRPGWeaponCp extends ArtifactCraftWeapon;
- var class<RPGWeapon> CRPGWeaponClass;
- var int DestModifier;
- var class<RPGWeapon> AltRPGWeaponClass;
- var int AltModifier;
- var bool bAltModify;
- function Activate()
- {
- local class<Weapon> CWeaponClass;
- local Weapon CurrentWeapon;
- local float TimeDelta;
- //Check to see if we are allowed to use this again by time.
- TimeDelta = Level.TimeSeconds - LastUseTime;
- if (Level.TimeSeconds - LastUseTime < UseDelay)
- {
- Instigator.ReceiveLocalizedMessage(MessageClass, 5000 + UseDelay - TimeDelta, None, None, Class);
- bActive = false;
- GotoState('');
- return;
- }
- CurrentWeapon = Instigator.Weapon;
- if(RPGWeapon(CurrentWeapon) != None)
- {
- if(RPGWeapon(CurrentWeapon).ModifiedWeapon == None)
- {
- bActive = false;
- GotoState('');
- return;
- }
- CWeaponClass = RPGWeapon(CurrentWeapon).ModifiedWeapon.class;
- CRPGWeaponClass = RPGWeapon(CurrentWeapon).class;
- DestModifier = RPGWeapon(CurrentWeapon).Modifier;
- }
- else
- {
- bActive = false;
- GotoState('');
- return;
- }
- if(CWeaponClass == None || CRPGWeaponClass == None)
- {
- bActive = false;
- GotoState('');
- return;
- }
- WeaponClass = CWeaponClass;
- bAltModify = false;
- Super.AltActivate();
- }
- function bool IsModifierOk(int Mod, class<RPGWeapon> RPGWepClass)
- {
- local int MaxMod;
- local int MinMod;
- if (RPGWepClass == None)
- return false;
- MaxMod = RPGWepClass.default.MaxModifier;
- MinMod = RPGWepClass.default.MinModifier;
- if (Mod == 0)
- {
- if (RPGWepClass.default.bCanHaveZeroModifier || (MaxMod == 0 && MinMod == 0) )
- return true;
- return false;
- }
- if (MaxMod > 0) // For OverMax
- {
- if (Mod <= (MaxMod + 1) && Mod >= MinMod)
- return true;
- return false;
- }
- if (Mod <= MaxMod && Mod >= MinMod)
- return true;
- return false;
- }
- function AltActivate(optional string Param)
- {
- local class<RPGWeapon> InRPGWeaponClass;
- local int InModifier;
- //local bool bModifierOk;
- local Weapon CurrentWeapon;
- local class<Weapon> CWeaponClass;
- local float TimeDelta;
- //Check to see if we are allowed to use this again by time.
- TimeDelta = Level.TimeSeconds - LastUseTime;
- if (Level.TimeSeconds - LastUseTime < UseDelay)
- {
- Instigator.ReceiveLocalizedMessage(MessageClass, 5000 + UseDelay - TimeDelta, None, None, Class);
- bActive = false;
- GotoState('');
- return;
- }
- if (Param != "")
- {
- InRPGWeaponClass = class<RPGWeapon>(DynamicLoadObject(Param, class'Class'));
- if (InRPGWeaponClass != None)
- {
- AltRPGWeaponClass = InRPGWeaponClass;
- bActive = false;
- GotoState('');
- return;
- }
- if (AltRPGWeaponClass != None)
- {
- InModifier = int(Param);
- if (IsModifierOk(InModifier, AltRPGWeaponClass) )
- {
- AltModifier = InModifier;
- }
- }
- bActive = false;
- GotoState('');
- return;
- }
- if (AltRPGWeaponClass == None)
- {
- bActive = false;
- GotoState('');
- return;
- }
- if (!IsModifierOk(AltModifier, AltRPGWeaponClass) )
- {
- bActive = false;
- GotoState('');
- return;
- }
- // CT
- CurrentWeapon = Instigator.Weapon;
- if(RPGWeapon(CurrentWeapon) != None)
- {
- if(RPGWeapon(CurrentWeapon).ModifiedWeapon == None)
- {
- bActive = false;
- GotoState('');
- return;
- }
- CWeaponClass = RPGWeapon(CurrentWeapon).ModifiedWeapon.class;
- }
- else
- CWeaponClass = CurrentWeapon.class;
- if(CWeaponClass == None)
- {
- bActive = false;
- GotoState('');
- return;
- }
- WeaponClass = CWeaponClass;
- bAltModify = true;
- Super.AltActivate();
- }
- function ModifyPickup (PickUp TMWeaponPickUp)
- {
- local RPGWeapon DestWeapon;
- //local class<RPGWeapon> CRPGWeaponClass;
- if (bAltModify)
- {
- CRPGWeaponClass = AltRPGWeaponClass;
- DestModifier = AltModifier;
- }
- //CRPGWeaponClass = RPGWeapon(CurrentWeapon).class;
- DestWeapon = spawn(CRPGWeaponClass,Instigator,,,rot(0,0,0));
- if(DestWeapon == None)
- {
- bActive = false;
- GotoState('');
- return;
- }
- DestWeapon.Modifier = DestModifier;
- DestWeapon.SetModifiedWeapon((spawn(WeaponClass,Instigator,,,rot(0,0,0))), true);
- RPGWeaponPickup(TMWeaponPickUp).DroppedWeapon = DestWeapon;
- if(RPGWeaponPickup(TMWeaponPickUp).DroppedWeapon == None)
- {
- bActive = false;
- GotoState('');
- return;
- }
- TMWeaponPickUp.GotoState( 'Pickup' );
- TMWeaponPickUp.RespawnTime = 0;
- //TMWeaponPickUp.bDropped = bIsDropped;
- TMWeaponPickUp.RespawnEffect();
- ////TMWeaponPickUp.AmmoAmount = GetAmmo();
- if (!TMWeaponPickUp.bDropped)
- TMWeaponPickUp.Lifespan = 120;
- TMWeaponPickUp.SetTimer(120, false);
- TMWeaponPickUp.NetUpdateTime = Level.TimeSeconds - 1;
- TMWeaponPickUp.bHidden = false;
- }
- defaultproperties
- {
- AbilityLevel=1
- UseDelay=2
- WeaponClass=Class'DWU2Weapons.AutoTurretDeploy'
- bIsFree=true
- bIsDropped=true
- MinActivationTime=0.000001
- ActivateSound=Sound'WeaponSounds.BaseGunTech.BReload2'
- IconMaterial=Texture'ME_RPGExpansion.Icons.CraftSpiderMines'
- ItemName="Craft RPG Weapon Cp"
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement