Make it possible to write mail from inventory

This commit is contained in:
JappaWakka 2023-08-01 13:17:09 +02:00
parent 783e401c39
commit c9b2bdfe62
39 changed files with 434 additions and 30 deletions

View File

@ -10,6 +10,15 @@ Namespace Items.Mail
Public Sub New()
_textureRectangle = New Rectangle(288, 456, 24, 24)
End Sub
Public Overrides Sub Use()
Dim MailID As String
If Me.IsGameModeItem = True Then
MailID = Me.gmID
Else
MailID = Me.ID.ToString
End If
Core.SetScreen(New TransitionScreen(Core.CurrentScreen, New MailSystemScreen(Core.CurrentScreen, MailID), Color.Black, False))
End Sub
End Class

View File

@ -11,6 +11,16 @@ Namespace Items.Mail
_textureRectangle = New Rectangle(0, 456, 24, 24)
End Sub
Public Overrides Sub Use()
Dim MailID As String
If Me.IsGameModeItem = True Then
MailID = Me.gmID
Else
MailID = Me.ID.ToString
End If
Core.SetScreen(New TransitionScreen(Core.CurrentScreen, New MailSystemScreen(Core.CurrentScreen, MailID), Color.Black, False))
End Sub
End Class
End Namespace

View File

@ -11,6 +11,16 @@ Namespace Items.Mail
_textureRectangle = New Rectangle(312, 456, 24, 24)
End Sub
Public Overrides Sub Use()
Dim MailID As String
If Me.IsGameModeItem = True Then
MailID = Me.gmID
Else
MailID = Me.ID.ToString
End If
Core.SetScreen(New TransitionScreen(Core.CurrentScreen, New MailSystemScreen(Core.CurrentScreen, MailID), Color.Black, False))
End Sub
End Class
End Namespace

View File

@ -11,6 +11,16 @@ Namespace Items.Mail
_textureRectangle = New Rectangle(336, 456, 24, 24)
End Sub
Public Overrides Sub Use()
Dim MailID As String
If Me.IsGameModeItem = True Then
MailID = Me.gmID
Else
MailID = Me.ID.ToString
End If
Core.SetScreen(New TransitionScreen(Core.CurrentScreen, New MailSystemScreen(Core.CurrentScreen, MailID), Color.Black, False))
End Sub
End Class
End Namespace

View File

@ -11,6 +11,17 @@ Namespace Items.Mail
_textureRectangle = New Rectangle(96, 480, 24, 24)
End Sub
Public Overrides Sub Use()
Dim MailID As String
If Me.IsGameModeItem = True Then
MailID = Me.gmID
Else
MailID = Me.ID.ToString
End If
Core.SetScreen(New TransitionScreen(Core.CurrentScreen, New MailSystemScreen(Core.CurrentScreen, MailID), Color.Black, False))
End Sub
End Class
End Namespace

View File

@ -11,6 +11,16 @@ Namespace Items.Mail
_textureRectangle = New Rectangle(168, 480, 24, 24)
End Sub
Public Overrides Sub Use()
Dim MailID As String
If Me.IsGameModeItem = True Then
MailID = Me.gmID
Else
MailID = Me.ID.ToString
End If
Core.SetScreen(New TransitionScreen(Core.CurrentScreen, New MailSystemScreen(Core.CurrentScreen, MailID), Color.Black, False))
End Sub
End Class
End Namespace

View File

@ -11,6 +11,16 @@ Namespace Items.Mail
_textureRectangle = New Rectangle(120, 480, 24, 24)
End Sub
Public Overrides Sub Use()
Dim MailID As String
If Me.IsGameModeItem = True Then
MailID = Me.gmID
Else
MailID = Me.ID.ToString
End If
Core.SetScreen(New TransitionScreen(Core.CurrentScreen, New MailSystemScreen(Core.CurrentScreen, MailID), Color.Black, False))
End Sub
End Class
End Namespace

View File

@ -11,6 +11,16 @@ Namespace Items.Mail
_textureRectangle = New Rectangle(72, 480, 24, 24)
End Sub
Public Overrides Sub Use()
Dim MailID As String
If Me.IsGameModeItem = True Then
MailID = Me.gmID
Else
MailID = Me.ID.ToString
End If
Core.SetScreen(New TransitionScreen(Core.CurrentScreen, New MailSystemScreen(Core.CurrentScreen, MailID), Color.Black, False))
End Sub
End Class
End Namespace

View File

@ -11,6 +11,16 @@ Namespace Items.Mail
_textureRectangle = New Rectangle(144, 480, 24, 24)
End Sub
Public Overrides Sub Use()
Dim MailID As String
If Me.IsGameModeItem = True Then
MailID = Me.gmID
Else
MailID = Me.ID.ToString
End If
Core.SetScreen(New TransitionScreen(Core.CurrentScreen, New MailSystemScreen(Core.CurrentScreen, MailID), Color.Black, False))
End Sub
End Class
End Namespace

View File

@ -11,6 +11,16 @@ Namespace Items.Mail
_textureRectangle = New Rectangle(360, 456, 24, 24)
End Sub
Public Overrides Sub Use()
Dim MailID As String
If Me.IsGameModeItem = True Then
MailID = Me.gmID
Else
MailID = Me.ID.ToString
End If
Core.SetScreen(New TransitionScreen(Core.CurrentScreen, New MailSystemScreen(Core.CurrentScreen, MailID), Color.Black, False))
End Sub
End Class
End Namespace

View File

@ -11,6 +11,16 @@ Namespace Items.Mail
_textureRectangle = New Rectangle(24, 456, 24, 24)
End Sub
Public Overrides Sub Use()
Dim MailID As String
If Me.IsGameModeItem = True Then
MailID = Me.gmID
Else
MailID = Me.ID.ToString
End If
Core.SetScreen(New TransitionScreen(Core.CurrentScreen, New MailSystemScreen(Core.CurrentScreen, MailID), Color.Black, False))
End Sub
End Class
End Namespace

View File

@ -11,6 +11,16 @@ Namespace Items.Mail
_textureRectangle = New Rectangle(48, 456, 24, 24)
End Sub
Public Overrides Sub Use()
Dim MailID As String
If Me.IsGameModeItem = True Then
MailID = Me.gmID
Else
MailID = Me.ID.ToString
End If
Core.SetScreen(New TransitionScreen(Core.CurrentScreen, New MailSystemScreen(Core.CurrentScreen, MailID), Color.Black, False))
End Sub
End Class
End Namespace

View File

@ -11,6 +11,16 @@ Namespace Items.Mail
_textureRectangle = New Rectangle(192, 480, 24, 24)
End Sub
Public Overrides Sub Use()
Dim MailID As String
If Me.IsGameModeItem = True Then
MailID = Me.gmID
Else
MailID = Me.ID.ToString
End If
Core.SetScreen(New TransitionScreen(Core.CurrentScreen, New MailSystemScreen(Core.CurrentScreen, MailID), Color.Black, False))
End Sub
End Class
End Namespace

View File

@ -11,6 +11,16 @@ Namespace Items.Mail
_textureRectangle = New Rectangle(384, 456, 24, 24)
End Sub
Public Overrides Sub Use()
Dim MailID As String
If Me.IsGameModeItem = True Then
MailID = Me.gmID
Else
MailID = Me.ID.ToString
End If
Core.SetScreen(New TransitionScreen(Core.CurrentScreen, New MailSystemScreen(Core.CurrentScreen, MailID), Color.Black, False))
End Sub
End Class
End Namespace

View File

@ -10,7 +10,17 @@ Namespace Items.Mail
Public Sub New()
_textureRectangle = New Rectangle(72, 456, 24, 24)
End Sub
Public Overrides Sub Use()
Dim MailID As String
If Me.IsGameModeItem = True Then
MailID = Me.gmID
Else
MailID = Me.ID.ToString
End If
Core.SetScreen(New TransitionScreen(Core.CurrentScreen, New MailSystemScreen(Core.CurrentScreen, MailID), Color.Black, False))
End Sub
End Class
End Namespace

View File

@ -10,7 +10,17 @@ Namespace Items.Mail
Public Sub New()
_textureRectangle = New Rectangle(408, 456, 24, 24)
End Sub
Public Overrides Sub Use()
Dim MailID As String
If Me.IsGameModeItem = True Then
MailID = Me.gmID
Else
MailID = Me.ID.ToString
End If
Core.SetScreen(New TransitionScreen(Core.CurrentScreen, New MailSystemScreen(Core.CurrentScreen, MailID), Color.Black, False))
End Sub
End Class
End Namespace

View File

@ -11,6 +11,17 @@ Namespace Items.Mail
_textureRectangle = New Rectangle(264, 480, 24, 24)
End Sub
Public Overrides Sub Use()
Dim MailID As String
If Me.IsGameModeItem = True Then
MailID = Me.gmID
Else
MailID = Me.ID.ToString
End If
Core.SetScreen(New TransitionScreen(Core.CurrentScreen, New MailSystemScreen(Core.CurrentScreen, MailID), Color.Black, False))
End Sub
End Class
End Namespace

View File

@ -11,6 +11,17 @@ Namespace Items.Mail
_textureRectangle = New Rectangle(96, 456, 24, 24)
End Sub
Public Overrides Sub Use()
Dim MailID As String
If Me.IsGameModeItem = True Then
MailID = Me.gmID
Else
MailID = Me.ID.ToString
End If
Core.SetScreen(New TransitionScreen(Core.CurrentScreen, New MailSystemScreen(Core.CurrentScreen, MailID), Color.Black, False))
End Sub
End Class
End Namespace

View File

@ -11,6 +11,16 @@ Namespace Items.Mail
_textureRectangle = New Rectangle(432, 456, 24, 24)
End Sub
Public Overrides Sub Use()
Dim MailID As String
If Me.IsGameModeItem = True Then
MailID = Me.gmID
Else
MailID = Me.ID.ToString
End If
Core.SetScreen(New TransitionScreen(Core.CurrentScreen, New MailSystemScreen(Core.CurrentScreen, MailID), Color.Black, False))
End Sub
End Class
End Namespace

View File

@ -11,6 +11,16 @@ Namespace Items.Mail
_textureRectangle = New Rectangle(240, 480, 24, 24)
End Sub
Public Overrides Sub Use()
Dim MailID As String
If Me.IsGameModeItem = True Then
MailID = Me.gmID
Else
MailID = Me.ID.ToString
End If
Core.SetScreen(New TransitionScreen(Core.CurrentScreen, New MailSystemScreen(Core.CurrentScreen, MailID), Color.Black, False))
End Sub
End Class
End Namespace

View File

@ -16,6 +16,16 @@ Namespace Items.Mail
_textureRectangle = New Rectangle(360, 480, 24, 24)
End Sub
Public Overrides Sub Use()
Dim MailID As String
If Me.IsGameModeItem = True Then
MailID = Me.gmID
Else
MailID = Me.ID.ToString
End If
Core.SetScreen(New TransitionScreen(Core.CurrentScreen, New MailSystemScreen(Core.CurrentScreen, MailID), Color.Black, False))
End Sub
End Class
End Namespace

View File

@ -11,6 +11,16 @@ Namespace Items.Mail
_textureRectangle = New Rectangle(312, 480, 24, 24)
End Sub
Public Overrides Sub Use()
Dim MailID As String
If Me.IsGameModeItem = True Then
MailID = Me.gmID
Else
MailID = Me.ID.ToString
End If
Core.SetScreen(New TransitionScreen(Core.CurrentScreen, New MailSystemScreen(Core.CurrentScreen, MailID), Color.Black, False))
End Sub
End Class
End Namespace

View File

@ -11,6 +11,16 @@ Namespace Items.Mail
_textureRectangle = New Rectangle(120, 456, 24, 24)
End Sub
Public Overrides Sub Use()
Dim MailID As String
If Me.IsGameModeItem = True Then
MailID = Me.gmID
Else
MailID = Me.ID.ToString
End If
Core.SetScreen(New TransitionScreen(Core.CurrentScreen, New MailSystemScreen(Core.CurrentScreen, MailID), Color.Black, False))
End Sub
End Class
End Namespace

View File

@ -11,6 +11,16 @@ Namespace Items.Mail
_textureRectangle = New Rectangle(456, 456, 24, 24)
End Sub
Public Overrides Sub Use()
Dim MailID As String
If Me.IsGameModeItem = True Then
MailID = Me.gmID
Else
MailID = Me.ID.ToString
End If
Core.SetScreen(New TransitionScreen(Core.CurrentScreen, New MailSystemScreen(Core.CurrentScreen, MailID), Color.Black, False))
End Sub
End Class
End Namespace

View File

@ -11,6 +11,16 @@ Namespace Items.Mail
_textureRectangle = New Rectangle(144, 456, 24, 24)
End Sub
Public Overrides Sub Use()
Dim MailID As String
If Me.IsGameModeItem = True Then
MailID = Me.gmID
Else
MailID = Me.ID.ToString
End If
Core.SetScreen(New TransitionScreen(Core.CurrentScreen, New MailSystemScreen(Core.CurrentScreen, MailID), Color.Black, False))
End Sub
End Class
End Namespace

View File

@ -10,6 +10,15 @@ Namespace Items.Mail
Public Sub New()
_textureRectangle = New Rectangle(288, 480, 24, 24)
End Sub
Public Overrides Sub Use()
Dim MailID As String
If Me.IsGameModeItem = True Then
MailID = Me.gmID
Else
MailID = Me.ID.ToString
End If
Core.SetScreen(New TransitionScreen(Core.CurrentScreen, New MailSystemScreen(Core.CurrentScreen, MailID), Color.Black, False))
End Sub
End Class

View File

@ -11,6 +11,16 @@ Namespace Items.Mail
_textureRectangle = New Rectangle(336, 480, 24, 24)
End Sub
Public Overrides Sub Use()
Dim MailID As String
If Me.IsGameModeItem = True Then
MailID = Me.gmID
Else
MailID = Me.ID.ToString
End If
Core.SetScreen(New TransitionScreen(Core.CurrentScreen, New MailSystemScreen(Core.CurrentScreen, MailID), Color.Black, False))
End Sub
End Class
End Namespace

View File

@ -11,6 +11,16 @@ Namespace Items.Mail
_textureRectangle = New Rectangle(168, 456, 24, 24)
End Sub
Public Overrides Sub Use()
Dim MailID As String
If Me.IsGameModeItem = True Then
MailID = Me.gmID
Else
MailID = Me.ID.ToString
End If
Core.SetScreen(New TransitionScreen(Core.CurrentScreen, New MailSystemScreen(Core.CurrentScreen, MailID), Color.Black, False))
End Sub
End Class
End Namespace

View File

@ -11,6 +11,18 @@ Namespace Items.Mail
_textureRectangle = New Rectangle(192, 456, 24, 24)
End Sub
Public Overrides Sub Use()
Dim MailID As String
If Me.IsGameModeItem = True Then
MailID = Me.gmID
Else
MailID = Me.ID.ToString
End If
Core.SetScreen(New TransitionScreen(Core.CurrentScreen, New MailSystemScreen(Core.CurrentScreen, MailID), Color.Black, False))
End Sub
End Class
End Namespace

View File

@ -11,6 +11,16 @@ Namespace Items.Mail
_textureRectangle = New Rectangle(480, 456, 24, 24)
End Sub
Public Overrides Sub Use()
Dim MailID As String
If Me.IsGameModeItem = True Then
MailID = Me.gmID
Else
MailID = Me.ID.ToString
End If
Core.SetScreen(New TransitionScreen(Core.CurrentScreen, New MailSystemScreen(Core.CurrentScreen, MailID), Color.Black, False))
End Sub
End Class
End Namespace

View File

@ -11,6 +11,16 @@ Namespace Items.Mail
_textureRectangle = New Rectangle(0, 480, 24, 24)
End Sub
Public Overrides Sub Use()
Dim MailID As String
If Me.IsGameModeItem = True Then
MailID = Me.gmID
Else
MailID = Me.ID.ToString
End If
Core.SetScreen(New TransitionScreen(Core.CurrentScreen, New MailSystemScreen(Core.CurrentScreen, MailID), Color.Black, False))
End Sub
End Class
End Namespace

View File

@ -11,6 +11,16 @@ Namespace Items.Mail
_textureRectangle = New Rectangle(24, 480, 24, 24)
End Sub
Public Overrides Sub Use()
Dim MailID As String
If Me.IsGameModeItem = True Then
MailID = Me.gmID
Else
MailID = Me.ID.ToString
End If
Core.SetScreen(New TransitionScreen(Core.CurrentScreen, New MailSystemScreen(Core.CurrentScreen, MailID), Color.Black, False))
End Sub
End Class
End Namespace

View File

@ -11,6 +11,16 @@ Namespace Items.Mail
_textureRectangle = New Rectangle(216, 480, 24, 24)
End Sub
Public Overrides Sub Use()
Dim MailID As String
If Me.IsGameModeItem = True Then
MailID = Me.gmID
Else
MailID = Me.ID.ToString
End If
Core.SetScreen(New TransitionScreen(Core.CurrentScreen, New MailSystemScreen(Core.CurrentScreen, MailID), Color.Black, False))
End Sub
End Class
End Namespace

View File

@ -11,6 +11,16 @@ Namespace Items.Mail
_textureRectangle = New Rectangle(216, 456, 24, 24)
End Sub
Public Overrides Sub Use()
Dim MailID As String
If Me.IsGameModeItem = True Then
MailID = Me.gmID
Else
MailID = Me.ID.ToString
End If
Core.SetScreen(New TransitionScreen(Core.CurrentScreen, New MailSystemScreen(Core.CurrentScreen, MailID), Color.Black, False))
End Sub
End Class
End Namespace

View File

@ -11,6 +11,16 @@ Namespace Items.Mail
_textureRectangle = New Rectangle(48, 480, 24, 24)
End Sub
Public Overrides Sub Use()
Dim MailID As String
If Me.IsGameModeItem = True Then
MailID = Me.gmID
Else
MailID = Me.ID.ToString
End If
Core.SetScreen(New TransitionScreen(Core.CurrentScreen, New MailSystemScreen(Core.CurrentScreen, MailID), Color.Black, False))
End Sub
End Class
End Namespace

View File

@ -11,6 +11,16 @@ Namespace Items.Mail
_textureRectangle = New Rectangle(240, 456, 24, 24)
End Sub
Public Overrides Sub Use()
Dim MailID As String
If Me.IsGameModeItem = True Then
MailID = Me.gmID
Else
MailID = Me.ID.ToString
End If
Core.SetScreen(New TransitionScreen(Core.CurrentScreen, New MailSystemScreen(Core.CurrentScreen, MailID), Color.Black, False))
End Sub
End Class
End Namespace

View File

@ -11,6 +11,16 @@ Namespace Items.Mail
_textureRectangle = New Rectangle(264, 456, 24, 24)
End Sub
Public Overrides Sub Use()
Dim MailID As String
If Me.IsGameModeItem = True Then
MailID = Me.gmID
Else
MailID = Me.ID.ToString
End If
Core.SetScreen(New TransitionScreen(Core.CurrentScreen, New MailSystemScreen(Core.CurrentScreen, MailID), Color.Black, False))
End Sub
End Class
End Namespace

View File

@ -8,7 +8,7 @@ Namespace Items
Inherits Item
Public Structure MailData
Dim MailID As Integer
Dim MailID As String
Dim MailHeader As String
Dim MailText As String
Dim MailSender As String
@ -30,7 +30,7 @@ Namespace Items
Dim data() As String = s.Split("\,")
Dim mail As New MailData
mail.MailID = CInt(data(0))
mail.MailID = CStr(data(0))
mail.MailSender = data(1)
mail.MailHeader = data(2)
mail.MailText = data(3)

View File

@ -11,6 +11,7 @@
Dim MenuCursor As Integer = 0
Dim MenuHeader As String = ""
Dim message As String = ""
Dim UsedFromInventory As Boolean = False
Public Sub New(ByVal currentScreen As Screen)
Me.PreScreen = currentScreen
@ -22,6 +23,21 @@
Me.CanChat = False
End Sub
Public Sub New(ByVal currentScreen As Screen, Optional MailItemID As String = "")
Me.PreScreen = currentScreen
Me.Identification = Identifications.MailSystemScreen
Me.MouseVisible = True
Me.CanBePaused = True
Me.CanMuteAudio = False
Me.CanChat = False
If MailItemID <> "" Then
Me.UsedFromInventory = True
Me.index = 0
ChosenMail(MailItemID)
End If
End Sub
Public Overrides Sub Draw()
Dim backSize As New Size(windowSize.Width, windowSize.Height)
@ -53,15 +69,20 @@
Canvas.DrawRectangle(New Rectangle(32, 64, 352, 624), New Color(255, 255, 255, 224))
Canvas.DrawRectangle(New Rectangle(400, 64, 704, 624), New Color(255, 255, 255, 224))
For i = scrollIndex To scrollIndex + 8
If i = 0 Then
DrawMail(Nothing, New Vector2(42, 78 + (i - scrollIndex) * 64), i)
Else
If i <= Core.Player.Mails.Count Then
DrawMail(Core.Player.Mails(i - 1), New Vector2(42, 78 + (i - scrollIndex) * 64 + 2 * (i - scrollIndex)), i)
If UsedFromInventory = True Then
DrawMail(Nothing, New Vector2(42, 78), scrollIndex)
Else
For i = scrollIndex To scrollIndex + 8
If i = 0 Then
DrawMail(Nothing, New Vector2(42, 78 + (i - scrollIndex) * 64), i)
Else
If i <= Core.Player.Mails.Count Then
DrawMail(Core.Player.Mails(i - 1), New Vector2(42, 78 + (i - scrollIndex) * 64 + 2 * (i - scrollIndex)), i)
End If
End If
End If
Next
Next
End If
Canvas.DrawScrollBar(New Vector2(368, 86), Core.Player.Mails.Count + 1, 9, scrollIndex, New Size(6, 560), False, Color.LightGray, Color.Black)
@ -583,19 +604,21 @@
If Controls.Accept(True, False, False) = True Then
Dim MailIndex As Integer = -1
For i = 0 To 8
If i < Core.Player.Mails.Count + 1 Then
If New Rectangle(46, 82 + 64 * i + 2 * (i - scrollIndex), 288, 64).Contains(MouseHandler.MousePosition) Then
MailIndex = scrollIndex + i
Exit For
If UsedFromInventory = False Then
For i = 0 To 8
If i < Core.Player.Mails.Count + 1 Then
If New Rectangle(46, 82 + 64 * i + 2 * (i - scrollIndex), 288, 64).Contains(MouseHandler.MousePosition) Then
MailIndex = scrollIndex + i
Exit For
End If
Else
If New Rectangle(46, 82 + 64 * i + 2 * (i - scrollIndex), 288, 64).Contains(MouseHandler.MousePosition) Then
EditMailIndex = 4
Exit For
End If
End If
Else
If New Rectangle(46, 82 + 64 * i + 2 * (i - scrollIndex), 288, 64).Contains(MouseHandler.MousePosition) Then
EditMailIndex = 4
Exit For
End If
End If
Next
Next
End If
If MailIndex <> -1 Then
selectIndex = MailIndex
SoundManager.PlaySound("select")
@ -637,14 +660,22 @@
End If
Case 4
SoundManager.PlaySound("select")
Me.index = -1
EditMailIndex = 0
If UsedFromInventory = True Then
Core.SetScreen(New TransitionScreen(Me, Me.PreScreen, Color.Black, False))
Else
Me.index = -1
EditMailIndex = 0
End If
End Select
End If
If Controls.Dismiss(True, False, True) = True Then
Me.index = -1
SoundManager.PlaySound("select")
If UsedFromInventory = True Then
Core.SetScreen(New TransitionScreen(Me, Me.PreScreen, Color.Black, False))
Else
Me.index = -1
EditMailIndex = 0
End If
End If
End If
End If
@ -652,10 +683,10 @@
End Sub
Private Sub ChosenMailHandler(ByVal params As Object())
ChosenMail(CInt(params(0)))
ChosenMail(CStr(params(0)))
End Sub
Private Sub ChosenMail(ByVal ItemID As Integer)
Private Sub ChosenMail(ByVal ItemID As String)
Me.index = 0
Me.EditMailIndex = 0
Me.TempNewMail = New Items.MailItem.MailData