Skip to content

Commit

Permalink
MP: Set Auto-Spectating Target
Browse files Browse the repository at this point in the history
  • Loading branch information
Psycast committed Dec 16, 2024
1 parent a2af184 commit e9ee62a
Showing 1 changed file with 32 additions and 3 deletions.
35 changes: 32 additions & 3 deletions src/classes/mp/views/MPRoomViewFFR.as
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ package classes.mp.views

private var loadProgressTimer:Timer = new Timer(500);
private var autoSpectate:Boolean = false;
private var autoSpectatePlayer:MPUser;

public function MPRoomViewFFR(room:MPRoomFFR, parent:DisplayObjectContainer = null, xpos:Number = 0, ypos:Number = 0)
{
Expand Down Expand Up @@ -120,7 +121,7 @@ package classes.mp.views
_mp.removeEventListener(MPEvent.FFR_MATCH_END, e_matchEnd);

userlist.removeEventListener(MPEvent.ROOM_USERLIST_SELECT, e_onUserSelect);
userlist.removeEventListener(MPEvent.ROOM_USERLIST_SPECTATE, e_onUserSpectate);
userlist.removeEventListener(MPEvent.ROOM_USERLIST_SPECTATE, e_onUserSpectateUserlist);
inviteButton.removeEventListener(MouseEvent.CLICK, e_inviteClick);

closePrompts();
Expand All @@ -142,7 +143,7 @@ package classes.mp.views
userlist = new MPViewUserListRoom(this, 410, 0);
userlist.setRoom(room);
userlist.addEventListener(MPEvent.ROOM_USERLIST_SELECT, e_onUserSelect);
userlist.addEventListener(MPEvent.ROOM_USERLIST_SPECTATE, e_onUserSpectate);
userlist.addEventListener(MPEvent.ROOM_USERLIST_SPECTATE, e_onUserSpectateUserlist);

autoSpectateButton = new UIIconHover(this, new iconEye(), 566, 16);
autoSpectateButton.setSize(15, 15);
Expand Down Expand Up @@ -346,6 +347,9 @@ package classes.mp.views
userlist.update();
updateRoomButton();
updatePanelDisplay();

if (autoSpectatePlayer === e.user && autoSpectate)
e_autoSpectateClick(null);
}
}

Expand Down Expand Up @@ -430,6 +434,14 @@ package classes.mp.views
if (room.isPlayer(_mp.currentUser))
return;

// Set Player
if (autoSpectatePlayer)
{
_spectatePlayer(autoSpectatePlayer);
return;
}

// Random Player
var gameUsers:Vector.<MPUser> = room.users.filter(function(user:MPUser, index:int, array:Vector.<MPUser>):Boolean
{
return room.isPlayer(user) && room.getPlayerState(user) == "game";
Expand Down Expand Up @@ -471,6 +483,12 @@ package classes.mp.views
{
autoSpectate = !autoSpectate;
autoSpectateButton.setColor(autoSpectate ? "#bdeda8" : "#eda8a8");

if (autoSpectatePlayer)
{
Alert.add(_lang.string("mp_room_spectate_user_clear"), 120, 0x005e5e);
autoSpectatePlayer = null;
}
}

private function e_inviteClick(e:MouseEvent):void
Expand All @@ -492,6 +510,17 @@ package classes.mp.views
_userProfilePrompt.addEventListener(MPEvent.ROOM_USERLIST_SPECTATE, e_onUserSpectate);
}

private function e_onUserSpectateUserlist(e:MPUserEvent):void
{
if (autoSpectate)
{
autoSpectatePlayer = e.user;
Alert.add(sprintf(_lang.string("mp_room_spectate_user_select"), {"name": e.user.name}), 120, 0x005e5e);
}

_spectatePlayer(e.user);
}

private function e_onUserSpectate(e:MPUserEvent):void
{
_spectatePlayer(e.user);
Expand Down Expand Up @@ -1457,7 +1486,7 @@ internal class OwnerModsPanel extends Sprite
view.setPanelOwner();

// Build command
const mods:Object = {};
var mods:Object = {};

if (enabledRate.checked)
{
Expand Down

0 comments on commit e9ee62a

Please sign in to comment.