Skip to content

Commit

Permalink
Merge branch 'R2Northstar:main' into northstar_tether_trap_fix
Browse files Browse the repository at this point in the history
  • Loading branch information
Zanieon authored Oct 19, 2023
2 parents 369edeb + d84d875 commit b0216ae
Show file tree
Hide file tree
Showing 7 changed files with 534 additions and 55 deletions.
16 changes: 16 additions & 0 deletions .github/workflows/add-to-project.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
name: add-to-project

on:
issues:
types:
- opened

jobs:
add-to-project:
name: Add to project
runs-on: ubuntu-latest
steps:
- uses: actions/[email protected]
with:
project-url: "https://github.com/orgs/R2Northstar/projects/3"
github-token: "${{ secrets.ADD_TO_PROJECT_PAT }}"
170 changes: 170 additions & 0 deletions Northstar.Client/mod/scripts/vscripts/ui/menu_edit_pilot_loadouts.nut
Original file line number Diff line number Diff line change
@@ -0,0 +1,170 @@
untyped

global function InitEditPilotLoadoutsMenu

struct
{
var menu
var loadoutPanel
var[NUM_PERSISTENT_PILOT_LOADOUTS] loadoutHeaders
var[NUM_PERSISTENT_PILOT_LOADOUTS] activateButtons
bool enteringEdit = false
var unlockReq
} file

void function InitEditPilotLoadoutsMenu()
{
file.menu = GetMenu( "EditPilotLoadoutsMenu" )
var menu = file.menu

AddMenuEventHandler( menu, eUIEvent.MENU_OPEN, OnPilotLoadoutsMenu_Open )
AddMenuEventHandler( menu, eUIEvent.MENU_CLOSE, OnPilotLoadoutsMenu_Close )
AddMenuEventHandler( menu, eUIEvent.MENU_INPUT_MODE_CHANGED, OnPilotLoadoutsMenu_InputModeChanged )

for ( int i = 0; i < NUM_PERSISTENT_PILOT_LOADOUTS; i++ )
{
var activateButton = Hud_GetChild( menu, "Button" + i )
activateButton.s.rowIndex <- i
Hud_SetVisible( activateButton, true )
Hud_AddEventHandler( activateButton, UIE_CLICK, OnLoadoutButton_Activate )
Hud_AddEventHandler( activateButton, UIE_GET_FOCUS, OnLoadoutButton_Focused )
Hud_AddEventHandler( activateButton, UIE_LOSE_FOCUS, OnLoadoutButton_LostFocus )
file.activateButtons[i] = activateButton
}

Hud_SetFocused( file.activateButtons[0] )

file.loadoutPanel = Hud_GetChild( menu, "PilotLoadoutDisplay" )
file.unlockReq = Hud_GetChild( menu, "UnlockReq" )

AddMenuFooterOption( menu, BUTTON_A, "#A_BUTTON_SELECT" )
AddMenuFooterOption( menu, BUTTON_B, "#B_BUTTON_BACK", "#BACK" )
}

void function OnPilotLoadoutsMenu_Open()
{
entity player = GetUIPlayer()
if ( player == null )
return

RunMenuClientFunction( "ClearEditingPilotLoadoutIndex" )

int loadoutIndex = uiGlobal.pilotSpawnLoadoutIndex
UpdatePilotLoadoutButtons( loadoutIndex, file.activateButtons )
UpdatePilotLoadoutPanel( file.loadoutPanel, GetCachedPilotLoadout( loadoutIndex ) )
UI_SetPresentationType( ePresentationType.PILOT )

RefreshCreditsAvailable()
}

void function OnPilotLoadoutsMenu_Close()
{
entity player = GetUIPlayer()
if ( player == null )
return

foreach ( i, button in file.activateButtons )
{
string pilotLoadoutRef = "pilot_loadout_" + ( i + 1 )
if ( !IsItemNew( player, pilotLoadoutRef ) )
continue

ClearNewStatus( button, pilotLoadoutRef )
}
}

void function OnPilotLoadoutsMenu_InputModeChanged()
{
UpdatePilotLoadoutPanelBinds( file.loadoutPanel )
}

void function OnLoadoutButton_Focused( var button )
{
int index = expect int( button.s.rowIndex )

// update the editingLoadoutIndex on focus so that it always matches
// with the pilot loadout panel
uiGlobal.editingLoadoutIndex = index
uiGlobal.editingLoadoutType = "pilot"

UpdatePilotLoadout( index )

string pilotLoadoutRef = "pilot_loadout_" + ( index + 1 )
string unlockReq = GetItemUnlockReqText( pilotLoadoutRef )
RHud_SetText( file.unlockReq, unlockReq )
}

void function UpdatePilotLoadout( int loadoutIndex )
{
PilotLoadoutDef loadout = GetCachedPilotLoadout( loadoutIndex )

UpdatePilotLoadoutPanel( file.loadoutPanel, loadout )
RunMenuClientFunction( "UpdatePilotModel", loadoutIndex )
}

void function OnLoadoutButton_Activate( var button )
{
if ( !IsFullyConnected() )
return

if ( Hud_IsLocked( button ) )
{
int index = expect int ( button.s.rowIndex )
string pilotLoadoutRef = "pilot_loadout_" + ( index + 1 )

array<var> buttons
foreach ( button in file.activateButtons )
{
buttons.append( button )
}

OpenBuyItemDialog( buttons, button, GetItemName( pilotLoadoutRef ), pilotLoadoutRef )
return
}

int loadoutIndex = expect int ( button.s.rowIndex )
SetEditLoadout( "pilot", loadoutIndex )

if ( EDIT_LOADOUT_SELECTS )
{
bool indexChanged = loadoutIndex != uiGlobal.pilotSpawnLoadoutIndex

if ( indexChanged )
{
EmitUISound( "Menu_LoadOut_Pilot_Select" )

if ( !IsLobby() )
uiGlobal.updatePilotSpawnLoadout = true
}

uiGlobal.pilotSpawnLoadoutIndex = loadoutIndex
ClientCommand( "RequestPilotLoadout " + loadoutIndex )
}

if ( PRE_RELEASE_DEMO && loadoutIndex < 3 )
{
UpdatePilotLoadoutButtons( loadoutIndex, file.activateButtons )
return
}

RunMenuClientFunction( "SetEditingPilotLoadoutIndex", loadoutIndex )
AdvanceMenu( GetMenu( "EditPilotLoadoutMenu" ) )
}

void function OnLoadoutButton_LostFocus( var button )
{
entity player = GetUIPlayer()
if ( !IsValid( player ) )
return

int loadoutIndex = expect int ( button.s.rowIndex )
string pilotLoadoutRef = "pilot_loadout_" + ( loadoutIndex + 1 )
ClearNewStatus( button, pilotLoadoutRef )

if ( IsItemLocked( player, pilotLoadoutRef ) )
return

PilotLoadoutDef loadout = GetCachedPilotLoadout( loadoutIndex )
if ( (RefHasAnyNewSubitem( player, loadout.primary ) || RefHasAnyNewSubitem( player, loadout.secondary ) || RefHasAnyNewSubitem( player, loadout.weapon3 )) )
Hud_SetNew( button, true )
}
Loading

0 comments on commit b0216ae

Please sign in to comment.