Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class RPGWeaponBaseSilly extends xWeaponBaseSilly;
- // TD: overlay, respawn stay.
- var class<RPGWeapon> DestRPGWeaponClass;
- var() string DestRPGWeaponStrClass;
- var() int DestModifier;
- var bool bModifierOk;
- var int ProperModifier;
- var PickUp Changeling;
- var() class<PickUp> ChangelingClass;
- //var xPickUpBase HaxBase;
- var() bool bNormalWep;
- var() bool bIsDropped;
- var() bool bIsRealWeaponStay;
- var() float PickUpRespawnTime;
- var() bool bIsWeaponStay;
- var() bool bIsThrown;
- var() bool bRealDelayedSpawn;
- var() bool bUnHook;
- //var() bool bHax;
- function SpawnPickup()
- {
- if (Changeling == None && bHidden != true)
- {
- bHidden = true;
- Changeling = spawn(ChangelingClass,,, Location, Rotation);
- }
- if (!bNormalWep)
- {
- if (DestRPGWeaponStrClass != "")
- DestRPGWeaponClass = class<RPGWeapon>(DynamicLoadObject(DestRPGWeaponStrClass, class'Class'));
- if (DestRPGWeaponClass == None)
- return;
- }
- Super(xPickUpBase).SpawnPickup();
- SetTimer(1,false);
- }
- function Timer()
- {
- local WeaponPickup WeaponPickUp;
- if (myPickUp != None)
- WeaponPickUp = WeaponPickup(myPickUp);
- if (WeaponPickUp != None)
- ModifyPickUp (WeaponPickUp);
- }
- function int GetOkModifier(int Mod, class<RPGWeapon> RPGWepClass)
- {
- local int MaxMod;
- local int MinMod;
- if (RPGWepClass == None)
- {
- log(self$" None RPGWeapon class ");
- return 0;
- }
- MaxMod = RPGWepClass.default.MaxModifier;
- MinMod = RPGWepClass.default.MinModifier;
- if (MaxMod == 0 && MinMod == 0)
- return 0;
- if (Mod == 0)
- {
- if (RPGWepClass.default.bCanHaveZeroModifier || (MaxMod == 0 && MinMod == 0) )
- return 0;
- if (1 <= MaxMod)
- return 1;
- if (MaxMod != 0)
- return MaxMod;
- return -1;
- }
- if (MaxMod > 0) // For OverMax
- {
- if (Mod <= (MaxMod + 1) && Mod >= MinMod)
- return Mod;
- if (Mod > (MaxMod + 1) )
- return MaxMod;
- if (Mod < MinMod && (MinMod != 0 || RPGWepClass.default.bCanHaveZeroModifier) )
- return MinMod;
- return 1;
- }
- if (Mod <= MaxMod && Mod >= MinMod)
- return Mod;
- if (Mod > MaxMod)
- {
- if (MaxMod != 0 || RPGWepClass.default.bCanHaveZeroModifier)
- return MaxMod;
- return -1;
- }
- if (Mod < MinMod)
- return MinMod;
- log(self$" Fail ");
- return 0;
- }
- function ModifyPickup (WeaponPickup TMWeaponPickUp)
- {
- local RPGWeapon DestWeapon;
- //local vector OldLocation;
- if (!bNormalWep)
- {
- if (DestRPGWeaponClass == None)
- return;
- if (!bModifierOk)
- {
- ProperModifier = GetOkModifier(DestModifier, DestRPGWeaponClass);
- bModifierOk = true;
- }
- }
- if (bUnHook) //|| bHax)
- {
- //OldLocation = Location;
- TMWeaponPickUp.PickupBase = None;
- SetLocation(vect(0,0,0) );
- bHidden = true;
- }
- /*if (bHax)
- {
- HaxBase = spawn(class'SillyRPG.ShieldChargerSilly',,,OldLocation,rot(0,0,0));
- HaxBase.myPickUp.destroy();
- TMWeaponPickUp.PickupBase = HaxBase;
- HaxBase.myPickUp = TMWeaponPickUp;
- //log(TMWeaponPickUp.PickupBase$"");
- //log(HaxBase.myPickUp$"");
- //log(HaxBase$"");
- }*/
- if (!bNormalWep)
- {
- DestWeapon = spawn(DestRPGWeaponClass,,,,rot(0,0,0));
- if(DestWeapon == None)
- return;
- DestWeapon.Modifier = ProperModifier;
- DestWeapon.SetModifiedWeapon((spawn(WeaponType,,,,rot(0,0,0))), true);
- RPGWeaponPickup(TMWeaponPickUp).DroppedWeapon = DestWeapon;
- if(RPGWeaponPickup(TMWeaponPickUp).DroppedWeapon == None)
- return;
- //DestWeapon.Identify();
- //if (!bHax)
- RPGWeaponPickup(TMWeaponPickUp).bRealWeaponStay = bIsRealWeaponStay;
- }
- if (!bRealDelayedSpawn)
- {
- if ( TMWeaponPickUp.myMarker != None )
- TMWeaponPickUp.myMarker.bSuperPickup = false;
- bDelayedSpawn = false;
- }
- TMWeaponPickUp.GotoState( 'Pickup' );
- //if (!bHax)
- //{
- TMWeaponPickUp.bWeaponStay = bIsWeaponStay;
- TMWeaponPickUp.bThrown = bIsThrown;
- TMWeaponPickUp.RespawnTime = PickUpRespawnTime;
- TMWeaponPickUp.bDropped = bIsDropped;
- //TMWeaponPickUp.RespawnEffect();
- //TMWeaponPickUp.AmmoAmount = GetAmmo();
- //TMWeaponPickUp.SetTimer(120, false);
- //}
- TMWeaponPickUp.bHidden = false;
- // Overlay set, from 'RPGWeaponPickup'
- /*if (DestWeapon.ModifierOverlay != None)// && DestWeapon.ThirdPersonActor != None)
- {
- //TMWeaponPickUp.LinkMesh(DestWeapon.ThirdPersonActor.Mesh);
- //TMWeaponPickUp.SetDrawType(DestWeapon.ThirdPersonActor.DrawType);
- TMWeaponPickUp.SetRotation(TMWeaponPickUp.Rotation + rot(0,0,32768)); //because attachments are always imported upside down
- TMWeaponPickUp.bOrientOnSlope = false;
- TMWeaponPickUp.SetOverlayMaterial(DestWeapon.ModifierOverlay, 0, true); //1000000
- }*/
- }
- defaultproperties
- {
- bIsRealWeaponStay = false;
- bIsDropped = false;
- PickUpRespawnTime = 0;
- bIsWeaponStay = false;
- bIsThrown = false;
- bUnHook = false;
- bDelayedSpawn = true;
- bModifierOk = false;
- ChangelingClass=Class'SillyRPG.XIsAChangeling'
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement