0% found this document useful (0 votes)
23 views3 pages

Message 6

jj

Uploaded by

desganfn
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
23 views3 pages

Message 6

jj

Uploaded by

desganfn
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 3

using { /Fortnite.

com/Devices }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/UI }
using { /Fortnite.com/UI }
using { /Fortnite.com/Game }
using { /Verse.org/Colors }
using { /Verse.org/Simulation/Tags }
using { /Fortnite.com/Characters }
using { /UnrealEngine.com/Temporary/SpatialMath }
using { /UnrealEngine.com/Temporary/Diagnostics }

# See https://dev.epicgames.com/documentation/en-us/uefn/create-your-own-device-in-
verse for how to create a verse device.
perplayerdisplay:=class(){
Device : team_score_display_device
OurPlayerUI : player_ui
var Canvas : ?canvas

TextShadowOffset:?vector2=option{vector2{X:=2.0,Y:=2.0}}

StringToMessage<localizes>(value:string) : message = "{value}"

var TeamOneScore:text_block = text_block {DefaultTextColor :=


NamedColors.White} #Blue
var TeamTwoScore:text_block = text_block {DefaultTextColor :=
NamedColors.White} #Red
BlueTeamText:text_block = text_block {DefaultTextColor := NamedColors.Blue}
#Team One
VsText:text_block = text_block {DefaultTextColor := NamedColors.White} #Team
One
RedTeamText:text_block = text_block {DefaultTextColor := NamedColors.Red} #Team
Two

InitWidget():void=
InitDefaultUIValues()
NewUI := CreateMyUI()
OurPlayerUI.AddWidget(NewUI, player_ui_slot{ZOrder:=10,InputMode :=
ui_input_mode.None})
set Canvas = option{NewUI}

InitDefaultUIValues():void=
BlueTeamText.SetText(StringToMessage("BLUE"))
RedTeamText.SetText(StringToMessage("RED"))
VsText.SetText(StringToMessage("VS"))
TeamOneScore.SetText(StringToMessage(ToString("0")))
TeamTwoScore.SetText(StringToMessage(ToString("0")))

UpdateUI(InTeamOneScore:int,InTeamTwoScore:int):void=
TeamOneScore.SetText(StringToMessage(ToString(InTeamOneScore)))
TeamTwoScore.SetText(StringToMessage(ToString(InTeamTwoScore)))

CreateMyUI():canvas=
TeamOneScore.SetShadowOffset(TextShadowOffset)
TeamOneScore.SetShadowOpacity(1.0)
TeamOneScore.SetShadowColor(NamedColors.Blue)
TeamTwoScore.SetShadowOffset(TextShadowOffset)
TeamTwoScore.SetShadowOpacity(1.0)
TeamTwoScore.SetShadowColor(NamedColors.Red)
BlueTeamText.SetShadowOffset(TextShadowOffset)
BlueTeamText.SetShadowOpacity(1.0)
RedTeamText.SetShadowOffset(TextShadowOffset)
RedTeamText.SetShadowOpacity(1.0)
VsText.SetShadowOffset(TextShadowOffset)
VsText.SetShadowOpacity(1.0)

NewCanvas := canvas:
Slots := array:
canvas_slot:
Anchors := anchors{ Minimum:= vector2{X:=0.5, Y:=0.04},
Maximum:= vector2{X:=0.5, Y:=0.04} }
Alignment := vector2{X:=0.5, Y:=0.0}
SizeToContent:=true
Widget := stack_box:
Orientation := orientation.Horizontal
Slots := array:
stack_box_slot:
HorizontalAlignment := horizontal_alignment.Left #
Alignment of widget within slot.
Widget := stack_box:
Orientation := orientation.Vertical
Slots := array:
stack_box_slot:
HorizontalAlignment :=
horizontal_alignment.Center # Alignment of widget within slot.
Padding := margin{Top:=6.0, Bottom:=
2.0} # Empty space between Title and Lines, in pixels.
Widget := RedTeamText
stack_box_slot:
Padding := margin{Top:=2.0, Left:=
12.0, Right:= 12.0, Bottom:= 2.0}
Widget := TeamTwoScore
stack_box_slot:
HorizontalAlignment := horizontal_alignment.Center
# Alignment of widget within slot.
Padding := margin{Top:=2.0, Left:= 24.0, Right:=
24.0, Bottom:= 2.0}
Widget := VsText
stack_box_slot:
HorizontalAlignment := horizontal_alignment.Right #
Alignment of widget within slot.
Widget := stack_box:
Orientation := orientation.Vertical
Slots := array:
stack_box_slot:
HorizontalAlignment :=
horizontal_alignment.Center # Alignment of widget within slot.
Padding := margin{Top:=6.0, Bottom:=
2.0} # Empty space between Title and Lines, in pixels.
Widget := BlueTeamText
stack_box_slot:
Padding := margin{Top:=2.0, Left:=
12.0, Right:= 12.0, Bottom:= 2.0}
Widget := TeamOneScore

return NewCanvas
}
# A Verse-authored creative device that can be placed in a level
team_score_display_device := class(creative_device):
var MaybeMyUIPerPlayer:[player]perplayerdisplay = map{}
var TeamOneKills:int=0
var TeamTwoKills:int=0

@editable
TeamOneBlue : team_settings_and_inventory_device =
team_settings_and_inventory_device{}
@editable
TeamTwoRed : team_settings_and_inventory_device =
team_settings_and_inventory_device{}

OnBegin<override>()<suspends>:void=
TeamOneBlue.EnemyEliminatedEvent.Subscribe(OnTeamOneScore)
TeamTwoRed.EnemyEliminatedEvent.Subscribe(OnTeamTwoScore)
AllPlayers := GetPlayspace().GetPlayers()
for (L_Agent : AllPlayers):
HandleJoiningPlayer(L_Agent)
GetPlayspace().PlayerAddedEvent().Subscribe(HandleJoiningPlayer)

HandleJoiningPlayer(InAgent:agent):void=
AddCanvas(InAgent)

AddCanvas(InAgent:agent):void=
if (InPlayer := player[InAgent], PlayerUI := GetPlayerUI[InPlayer]):
if (not MaybeMyUIPerPlayer[InPlayer]):

PerPlayerDisplay:perplayerdisplay=perplayerdisplay{Device:=Self,OurPlayerUI:=Player
UI,Canvas:=false}
PerPlayerDisplay.InitWidget()
if (set MaybeMyUIPerPlayer[InPlayer] = PerPlayerDisplay) {}

UpdateUI(InTeamOneScore:int,InTeamTwoScore:int):void=
for (Key->Value : MaybeMyUIPerPlayer):
Value.UpdateUI(InTeamOneScore, InTeamTwoScore)

OnTeamOneScore(InAgent:agent):void=
IncTeamOneKills()
UpdateUI(TeamOneKills,TeamTwoKills)

OnTeamTwoScore(InAgent:agent):void=
IncTeamTwoKills()
UpdateUI(TeamOneKills,TeamTwoKills)

IncTeamOneKills()<transacts>:void=
set TeamOneKills += 1

IncTeamTwoKills()<transacts>:void=
set TeamTwoKills += 1

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy