class KFWiki extends Settings_Tabs; var ()array WikiObjectDescription,WikiObjectName,WikiObjectClassName; var rotator ItemRotOffset; var automated KFGUISectionBackground i_BG, i_BG2, i_BG3; var automated GUIImage i_Shadow, i_Bk; var automated GUIListBox lb_items; var automated GUIScrollTextBox lb_Desc,lb_statBox,lb_Healthbox; var KFSpinnyWeap SpinnyWeap; // MUST be set to null when you leave the window var() vector SpinnyWeapOffset; var rotator SpinnyWeaponRot; var editconst noexport float SavedPitch; var float fScale; var localized string HiddenText, LoadingText; var config bool bDebugPriority, bDebugScale, bDebugWeapon; var () rotator infoDrawRotation; function InitComponent(GUIController MyController, GUIComponent MyOwner) { Super.InitComponent(MyController, MyOwner); lb_items.List.bMultiSelect=False; i_BG2.ManageComponent(lb_items); if ( bDebugWeapon ) OnKeyEvent = CoolOnKeyEvent; } function IntializeWeaponList() { local UT2K4GenericMessageBox Page; // Display the "loading" page if ( Controller.OpenMenu("GUI2K4.UT2K4GenericMessageBox", "", LoadingText) ) { Page = UT2K4GenericMessageBox(Controller.ActivePage); Page.RemoveComponent(Page.b_Ok); Page.RemoveComponent(Page.l_Text); Page.l_Text2.FontScale = FNS_Large; Page.l_Text2.WinHeight = 1.0; Page.l_Text2.WinTop = 0.0; Page.l_Text2.bBoundToParent = True; Page.l_Text2.bScaleToParent = True; Page.l_Text2.VertAlign = TXTA_Center; Page.l_Text2.TextAlign = TXTA_Center; Page.bRenderWorld = False; Page.OnRendered = ReallyInitializeWeaponList; } } function ReallyInitializeWeaponList( Canvas C ) { local int i; local rotator AdjustedRot; if ( Controller.ActivePage.Tag != 55 ) { Controller.ActivePage.Tag = 55; return; } // Disable the combo list's OnChange() lb_items.List.bNotify = False; lb_items.List.Clear(); // lb_items.List.Add("ENEMIES",,,true); lb_items.List.Add("ENEMIES",,,true); for(i=0; i CurrentEnemy; local class CurrentWeapon; local class CurrentWeaponPickup; local Rotator AdjustedRot; if(SpinnyWeap == None) return; i_BG.Caption = lb_items.List.Get(); lb_Desc.SetContent( lb_items.List.GetExtra() ); // Weapons if(lb_items.List.index < 9) { CurrentEnemy = class(DynamicLoadObject(WikiObjectClassName[lb_items.List.Index], class'Class')); //log(CurrentEnemy); //log(CurrentEnemy.default.HealthMax); SpinnyWeap.LinkMesh(CurrentEnemy.default.Mesh); SpinnyWeap.SetDrawType(CurrentEnemy.default.DrawType); SpinnyWeap.SetDrawScale(CurrentEnemy.default.DrawScale * 1.5); SpinnyWeap.SetDrawScale3D(CurrentEnemy.default.DrawScale3D); SpinnyWeap.SetRotation(SpinnyWeaponRot); lb_StatBox.SetContent(" Damage Potential - "$CurrentEnemy.default.MeleeDamage); lb_Healthbox.SetContent(" Hitpoints - "$CurrentEnemy.default.HealthMax); if (CurrentEnemy == class 'KFChar.ZombieBloat')// SpinnyWeap.PlayAnim('ZombieBarf',1.0); else if (CurrentEnemy == class 'KFChar.ZombieSiren') SpinnyWeap.PlayAnim('Siren_Scream',1.0); else SpinnyWeap.PlayAnim(CurrentEnemy.default.MeleeAnims[rand(3)],1.0); // SpinnyWeap.LoopAnim(CurrentEnemy.default.IdleRestAnim); // SpinnyWeap.SetStaticMesh } else if (lb_items.List.index > 9) { CurrentWeapon = class(DynamicLoadObject(WikiObjectClassName[lb_items.List.Index - 1], class'Class')); //CurrentWeaponFire = class(DynamicLoadObject(string(CurrentWeapon.GetFireMode(0), class'Class')); CurrentWeaponPickup = class(DynamicLoadObject(string(CurrentWeapon.default.PickupClass), class'Class')); //lb_StatBox.SetContent(" Damage Potential - "$CurrentWeaponFire.default.DamageMin$"-"$(CurrentWeaponFire.default.DamageMin + CurrentWeaponFire.default.DamageMax)); lb_Healthbox.SetContent(""); SpinnyWeap.LinkMesh(none); SpinnyWeap.SetDrawType(CurrentWeaponPickup.default.DrawType); SpinnyWeap.SetDrawScale(CurrentWeaponPickup.default.DrawScale * 2.5); SpinnyWeap.SetDrawScale3D(CurrentWeaponPickup.default.DrawScale3D); SpinnyWeap.SetStaticMesh(CurrentWeaponPickup.default.StaticMesh); AdjustedRot = SpinnyWeap.Rotation; if (AdjustedRot.yaw == SpinnyWeaponRot.yaw) AdjustedRot.Yaw = -SpinnyWeaponRot.Yaw; SpinnyWeap.SetRotation(AdjustedRot); } } event Opened(GUIComponent Sender) { Super.Opened(Sender); if ( SpinnyWeap != None ) { SpinnyWeap.bHidden = false; } } event Closed(GUIComponent Sender, bool bCancelled) { Super.Closed(Sender, bCancelled); if ( SpinnyWeap != None ) SpinnyWeap.bHidden = true; } event Free() { if ( SpinnyWeap != None ) { SpinnyWeap.Destroy(); SpinnyWeap = None; } Super.Free(); } function bool CoolOnKeyEvent(out byte Key, out byte State, float delta) { local Interactions.EInputKey iKey; local vector V; iKey = EInputKey(Key); V = SpinnyWeap.DrawScale3D; if ( state == 1 ) { switch (iKey) { case IK_E: SpinnyWeapOffset.X = SpinnyWeapOffset.X - 1; LogSpinnyWeap(); return true; case IK_C: SpinnyWeapOffset.X = SpinnyWeapOffset.X + 1; LogSpinnyWeap(); return true; case IK_W: SpinnyWeapOffset.Z = SpinnyWeapOffset.Z + 1; LogSpinnyWeap(); return true; case IK_A: SpinnyWeapOffset.Y = SpinnyWeapOffset.Y - 1; LogSpinnyWeap(); return true; case IK_S: SpinnyWeapOffset.Z = SpinnyWeapOffset.Z - 1; LogSpinnyWeap(); return true; case IK_D: SpinnyWeapOffset.Y = SpinnyWeapOffset.Y + 1; LogSpinnyWeap(); return true; case IK_NumPad8: V.Z = V.Z + 1; SpinnyWeap.SetDrawScale3D( V ); LogWeapScale(); return True; case IK_NumPad4: V.Y = V.Y - 1; SpinnyWeap.SetDrawScale3D(V); LogWeapScale(); return True; case IK_NumPad6: V.Y = V.Y + 1; SpinnyWeap.SetDrawScale3D(V); LogWeapScale(); return True; case IK_NumPad2: V.Z = V.Z - 1; SpinnyWeap.SetDrawScale3D(V); LogWeapScale(); return True; case IK_NumPad7: V.X = V.X - 1; SpinnyWeap.SetDrawScale3D(V); LogWeapScale(); return True; case IK_NumPad9: V.X = V.X + 1; SpinnyWeap.SetDrawScale3D(V); LogWeapScale(); return True; } } return false; } function LogSpinnyWeap() { log("Weapon Position X:"$SpinnyWeapOffset.X@"Y:"$SpinnyWeapOffset.Y@"Z:"$SpinnyWeapOffset.Z); } function LogWeapScale() { log("DrawScale3D X:"$SpinnyWeap.DrawScale3D.X@"Y:"$SpinnyWeap.DrawScale3D.Y@"Z:"$SpinnyWeap.DrawScale3D.Z); } defaultproperties { OnRendered=InternalDraw // Item Display BG Begin Object class=KFGUISectionBackground Name=WeaponBK WinWidth=0.594473 WinHeight=0.978337 WinLeft=0.001253 WinTop=0.007663 Caption="Weapon" AltCaptionAlign = TXTA_Left AltCaptionOffset(3) = 120 AltCaptionOffset(0) = -500 FontScale = FNS_Large bAltCaption = true bCaptureMouse=true OnCapturedMouseMove=RaceCapturedMouseMove HeaderBase = none End Object i_BG=WeaponBK // The Selection List BG Begin Object class=KFGUISectionBackground Name=WeaponPriorityBK WinWidth=0.380157 WinHeight=0.968776 WinLeft=0.615537 WinTop=0.013973 Caption="Information" TopPadding=0 BottomPadding=0 RightPadding=0 LeftPadding=0 bFillClient=true FontScale = FNS_Medium End Object i_BG2=WeaponPriorityBK Begin Object Class=GUIScrollTextBox Name=WeaponDescription WinWidth=0.206476 WinHeight=0.586749 WinLeft=0.014425 WinTop=0.137477 CharDelay=0.0015 EOLDelay=0.25 bNeverFocus=true bAcceptsInput=false bVisibleWhenEmpty=True RenderWeight=0.51 TabOrder=0 FontScale=FNS_Small StyleName="NoBackground" End Object lb_Desc=WeaponDescription Begin Object Class=GUIScrollTextBox Name=ItemStatsBox WinWidth=0.413595 WinHeight=0.029286 WinLeft=0.000830 WinTop=0.957376 CharDelay=0.0015 EOLDelay=0.25 bNeverFocus=true bAcceptsInput=false bVisibleWhenEmpty=True bNoTeleType = true RenderWeight=0.51 TabOrder=0 FontScale=FNS_Small //MyScrollText.Style.Font = "UT2MidGameFont" StyleName="MidGameButton"//"NoBackground" End Object lb_StatBox=ItemStatsBox Begin Object Class=GUIScrollTextBox Name=HealthBox WinWidth=0.413595 WinHeight=0.029286 WinLeft=0.000830 WinTop=0.925 CharDelay=0.0015 EOLDelay=0.25 bNeverFocus=true bAcceptsInput=false bNoTeleType = true bVisibleWhenEmpty=True RenderWeight=0.51 TabOrder=0 FontScale=FNS_Small //MyScrollText.Style.Font = "UT2MidGameFont" StyleName="MidGameButton"//"NoBackground" End Object lb_Healthbox=HealthBox Begin Object Class=GUIListBox Name=WeaponPrefWeapList WinWidth=0.338338 WinHeight=0.221055 WinLeft=0.068546 WinTop=0.733868 bVisibleWhenEmpty=true Hint="Select order for weapons" OnChange=InternalOnChange RenderWeight=0.51 StyleName="NoBackground" TabOrder=1 End Object lb_items=WeaponPrefWeapList WinTop=0.15 WinLeft=0 WinWidth=1 WinHeight=0.74 bAcceptsInput=false SpinnyWeapOffset=(X=200,Y=1.50,Z=-10.00) PanelCaption="Weapons" HiddenText="Hidden" LoadingText="...Loading D.R.F Database..." // Clot WikiObjectName(1) = "Clot" WikiObjectClassName(1) = "KFChar.ZombieClot" WikiObjectDescription(1) = "When Horzine started its second wave of human cloning and genetic engineering programs, the intention was to create a fully grown male that would respond to imperatives and could recognize Horzine staff as its masters. Orders were to be given to these subjects through a neural implant which released controlled doses of serotonin upon successful completion of a mandate. The subjects quickly showed signs of abberant behaviour, however, including aggressive self mutilation. The first batch of clones was spawned from the DNA of Horzine CEO Kevin Clamely's deceased son. The failure of these specimens put a brief hold on the project while new avenues were pursued." // Stalker WikiObjectName(2) = "Stalker" WikiObjectClassName(2) = "KFChar.ZombieStalker" WikiObjectDescription(2) = "A scary girl..!" // Bloat WikiObjectName(3) = "Bloat" WikiObjectClassName(3) = "KFChar.ZombieBloat" WikiObjectDescription(3) = "Fatty Fat" // Crawler WikiObjectName(4) = "Crawler" WikiObjectClassName(4) = "KFChar.ZombieCrawler" WikiObjectDescription(4) = "A fast moving, leaping critter. Dangerous in mobs." // Gorefast WikiObjectName(5) = "Gorefast" WikiObjectClassName(5) = "KFChar.ZombieGorefast" WikiObjectDescription(5) = "Run!!" // Scrake WikiObjectName(6) = "Scrake" WikiObjectClassName(6) = "KFChar.ZombieScrake" WikiObjectDescription(6) = "BUZZZZZ" // Siren WikiObjectName(7) = "Siren" WikiObjectClassName(7) = "KFChar.ZombieSiren" WikiObjectDescription(7) = "Siiiing" // Fleshpound WikiObjectName(8) = "Fleshpound" WikiObjectClassName(8) = "KFChar.ZombieFleshpound" WikiObjectDescription(8) = "CRUSH!" //////////////////////////////////////////// // WEAPONS // //////////////////////////////////////////// // Knife WikiObjectName(9) = "Combat Knife" WikiObjectClassName(9) = "KFMod.Knife" WikiObjectDescription(9) = "A combat knife. sharp." // Broken Pipe WikiObjectName(10) = "Machete" WikiObjectClassName(10) = "KFMod.Machete" WikiObjectDescription(10) = "a machete" // Fire Axe WikiObjectName(11) = "Fire Axe" WikiObjectClassName(11) = "KFMod.Axe" WikiObjectDescription(11) = "an axe!" // 9MM WikiObjectName(12) = "9mm tactical" WikiObjectClassName(12) = "KFMod.Single" WikiObjectDescription(12) = "a fallback weapon" // Dual 9mms WikiObjectName(13) = "Dual 9mms" WikiObjectClassName(13) = "KFMod.Dualies" WikiObjectDescription(13) = "two of the above." // Handcannon WikiObjectName(14) = "Handcannon" WikiObjectClassName(14) = "KFMod.Deagle" WikiObjectDescription(14) = "a bigass pistol" // Bullpup WikiObjectName(15) = "Bullpup" WikiObjectClassName(15) = "KFMod.Bullpup" WikiObjectDescription(15) = "an automatic rifle" // Winchester WikiObjectName(16) = "Lever Action Rifle" WikiObjectClassName(16) = "KFMod.Winchester" WikiObjectDescription(16) = "an old school rifle" // Shotgun WikiObjectName(17) = "Combat Shotgun" WikiObjectClassName(17) = "KFMod.Shotgun" WikiObjectDescription(17) = "a boomstick" // Hunting Shotgun WikiObjectName(18) = "Hunting Shotgun" WikiObjectClassName(18) = "KFMod.Boomstick" WikiObjectDescription(18) = "a bigger boomstick" // Crossbow WikiObjectName(19) = "Crossbow" WikiObjectClassName(19) = "KFMod.Crossbow" WikiObjectDescription(19) = "a ranged hunting weapon" // Flamethrower WikiObjectName(20) = "Flamethrower" WikiObjectClassName(20) = "KFMod.Flamethrower" WikiObjectDescription(20) = "flaaaame on" // LAW WikiObjectName(21) = "L.A.W" WikiObjectClassName(21) = "KFMod.LAW" WikiObjectDescription(21) = "Light anti tank weapons" // Grenade WikiObjectName(22) = "Fragmentation Grenade" WikiObjectClassName(22) = "KFMod.Frag" WikiObjectDescription(22) = "It blows up" // Syringe WikiObjectName(23) = "Medical Syringe" WikiObjectClassName(23) = "KFMod.Syringe" WikiObjectDescription(23) = "It heals!" // Welder WikiObjectName(24) = "Welding Tool" WikiObjectClassName(24) = "KFMod.Welder" WikiObjectDescription(24) = "it welds!" // Vest WikiObjectName(25) = "Kevlar Vest" WikiObjectClassName(25) = "KFMod.Vest" WikiObjectDescription(25) = "it protects!" // FirstAidKit WikiObjectName(26) = "First Aid Kit" WikiObjectClassName(26) = "KFMod.FirstAidKit" WikiObjectDescription(26) = "it heals lots!!" }