Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class ArtifactCraftTurrets extends ArtifactCraftWeapon;
- var array< class<Weapon> > AvailableTurrets;
- var array< class<Weapon> > AllowedWeapons;
- var float ALastUseTime;
- function Weapon FindWeaponTypeRPG( class<Weapon> DesiredClass )
- {
- local Inventory Inv;
- local int Count;
- local Weapon Wep;
- for( Inv=Instigator.Inventory; Inv!=None && Count < 1000; Inv=Inv.Inventory )
- {
- Wep = None;
- if (RPGWeapon(Inv)!= None)
- {
- if(RPGWeapon(Inv).ModifiedWeapon != None)
- Wep = RPGWeapon(Inv).ModifiedWeapon;
- }
- else
- Wep = Weapon(Inv);
- if ( Wep != None && Wep.class == DesiredClass )
- return Wep;
- Count++;
- }
- // Search for subclasses if exact class wasn't found
- Count = 0;
- for ( Inv = Instigator.Inventory; Inv != None && Count < 1000; Inv = Inv.Inventory )
- {
- Wep = None;
- if (RPGWeapon(Inv)!= None)
- {
- if(RPGWeapon(Inv).ModifiedWeapon != None)
- Wep = RPGWeapon(Inv).ModifiedWeapon;
- }
- else
- Wep = Weapon(Inv);
- if ( Wep != None && ClassIsChildOf(Wep.class, DesiredClass) )
- return Wep;
- Count++;
- }
- return None;
- }
- function Activate()
- {
- local int i,j;
- local bool bDuplicate;
- local Weapon W;
- local class <Weapon> WClass;
- local float TimeDelta;
- TimeDelta = Level.TimeSeconds - ALastUseTime;
- if (TimeDelta < UseDelay)
- {
- Instigator.ReceiveLocalizedMessage(MessageClass, 5000 + UseDelay - TimeDelta, None, None, Class);
- bActive = false;
- GotoState('');
- return;
- }
- ALastUseTime = Level.TimeSeconds;
- for( i=0; i < AllowedWeapons.length; i++ )
- {
- W = FindWeaponTypeRPG(AllowedWeapons[i]);
- if (W!=None)
- WClass = W.class;
- if (WClass != None)
- {
- bDuplicate = false;
- for( j=0; j < AvailableTurrets.length; j++ )
- {
- if (AvailableTurrets[j] == WClass)
- {
- bDuplicate = true;
- j = AvailableTurrets.length;
- }
- }
- if (!bDuplicate)
- AvailableTurrets[AvailableTurrets.length] = WClass;
- }
- }
- return;
- }
- function AltActivate(optional string Param)
- {
- local int i;
- if (Param == "")
- {
- for( i=0; i < AvailableTurrets.length; i++ )
- {
- Instigator.ClientMessage("[" $ i $ "] = " $ string(AvailableTurrets[i])); //.Default.FriendlyName);
- }
- }
- else if (int(Param) >=0 && int(Param) < AvailableTurrets.length)
- {
- WeaponClass = AvailableTurrets[int(Param)];
- Super.AltActivate();
- }
- }
- defaultproperties
- {
- AllowedWeapons(0)=Class'U2Weapons.U2AutoTurretDeploy'
- AllowedWeapons(1)=Class'U2Weapons.U2WeaponRocketTurret'
- AllowedWeapons(2)=Class'DWU2Weapons.WeaponLaserTurrets'
- AbilityLevel=1
- UseDelay=2
- WeaponClass=None
- bIsFree=false
- bIsDropped=true
- MinActivationTime=0.000001
- ActivateSound=Sound'WeaponSounds.BaseGunTech.BReload2'
- IconMaterial=Texture'ME_RPGExpansion.Icons.CraftSpiderMines'
- ItemName="Craft Turrets"
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement