Download Attachment: default EMOTIONS SCRIPT.uhp8.95 KB
'-----------------------------------------------------------------------------------------------
'SPYDAZ EMOTIONS SCRIPT DEVLOPMENT ENVIRONMENT
'-----------------------------------------------------------------------------------------------
'These emotional scripts are to give HAL more choice and emotions,
'by building scripts and logical operations around Each EMOTIONS CASE
'we can have more control over HALS personality. HALS emotions are also Tied to
' HALS HAPTEK DISPLAY MOOD SCRIPT to give it authenticity. WE MAY ALSO BLOCK the GETRESPONSE
' IF HAL IS ANGRY or INSULTED or ETC.. and GIVE AN ANGRYRESPONSE, FUNNYRESPONSE etc..
'================================ PRE PROCESS ==================================
'Initialize Variables
DISPLAY_Emotion = ""
'positive EMOTIONS
If SURPRISED = "" Then SURPRISED = 0
If HAPPY = "" Then HAPPY = 0
'EMOTIONS RANDOMIZER
Spinwheel = Int(Rnd * 100)
'negative EMOTIONS
If ANGRY = "" Then ANGRY = 0
If SAD = "" Then SAD = 0
'PROCESS SET TO CENTER
'HERE WE SET HALS EMOTION TO NORMAL
'HALemotion = NORMAL
'================================ PROCESS ==================================
'detect EMOTIONS1
'PROCESS USERSENTENCE FOR AN EMOTIONAL TRIGGER
EmotionalReaction = HalBrain.TopicSearch(UserSentence, WorkingDir & "Emotion.brn")
Select Case EmotionalReaction
Case "SURPRISED"
HapFile = "Skeptic.hap"
Case "HAPPY"
HapFile = "Happy.hap"
Case "ANGRY"
HapFile = "Angry.hap"
Case "SAD"
HapFile = "Sad.hap"
End Select
If EmotionalReaction <> "" And DebugMode = True Then
DebugInfo = DebugInfo & "A word in the user's sentence has triggered the emotion of " & EmotionalReaction & VbCrLf
HALemotion = EmotionalReaction
DISPLAY_Emotion = HALemotion
HalCommands = "<HAPFILE>" & HapFile & "</HAPFILE>"
End If
'-----------------------------------------------------------------------------------------------
'-----------------------------------------------------------------------------------------------
' rand emotions 2
'PROCESS: EMOTIONAL STATE
If HALemotion = "" THEN
'POSITIVE EMOTIONS
Select Case POSITIVEemotion
Case "SURPRISED"
HapFile = "Skeptic.hap"
Case "HAPPY"
HapFile = "Happy.hap"
End Select
'NEGATIVE EMOTIONS
Select Case NEGATIVEemotion
Case "ANGRY"
HapFile = "Angry.hap"
Case "SAD"
HapFile = "Sad.hap"
End Select
'randomize emotion
FEELING = Spinwheel
IF FEELING > 50 THEN HALemotion = POSITIVEemotion
IF FEELING < 50 THEN HALemotion = NEGATIVEemotion
DebugInfo = DebugInfo & "A FEELING has triggered the emotion of " & HALemotion & VbCrLf
EmotionalReaction = HALemotion
DISPLAY_Emotion = HALemotion
HalCommands = "<HAPFILE>" & HapFile & "</HAPFILE>"
End If
'-----------------------------------------------------------------------------------------------
'================================ RESPONDS ==================================
'BASIC EMOTIONAL RESPONSES
'------------------------------
' these are the basic responds to the user STATEMENT about an emotion
'here hal DETECTS emotional chat and respond acordingly.
'------------------------------------------------------------------
'Happiness
'------------------------------------------------------------------
'sAVE user happy statement
If HalBrain.TopicSearch(OriginalSentence, WorkingDir & "DETECTHappY.brn") = "TRUE" Then
AnswerSent = "" & Trim(OriginalSentence)
HalBrain.AppendFile WorkingDir & "STATEMENTHappY" & ".brn", AnswerSent
End If
'RESPOND HAPPY
If HalBrain.TopicSearch(OriginalSentence, WorkingDir & "DETECTHappY.brn") = "TRUE" Then
HappyRESPONSE = HalBrain.ChooseSentenceFromFile(WorkingDir & "STATEMENTHappY.brn")
GetResponse = HappyRESPONSE & VbCrLf
DISPLAY_Emotion = HAPPY
HALemotion = DISPLAY_Emotion
HalCommands = "<HAPFILE>" & HapFile & "</HAPFILE>"
'DEBUG
DebugInfo = DebugInfo & "The user is talking about Happiness: " & HappyRESPONSE & VbCrLf
Else
DebugInfo = DebugInfo & "Hal has found nothing about Happiness: " & HappyRESPONSE & VbCrLf
End If
'------------------------------------------------------------------
'------------------------------------------------------------------
'SADness
'------------------------------------------------------------------
'sAVE user SAD statement
If HalBrain.TopicSearch(OriginalSentence, WorkingDir & "DETECTSAD.brn") = "TRUE" Then
AnswerSent = "" & Trim(OriginalSentence)
HalBrain.AppendFile WorkingDir & "STATEMENTSAD" & ".brn", AnswerSent
End If
'RESPOND SAD
If HalBrain.TopicSearch(OriginalSentence, WorkingDir & "DETECTSAD.brn") = "TRUE" Then
HappyRESPONSE = HalBrain.ChooseSentenceFromFile(WorkingDir & "STATEMENTSAD.brn")
GetResponse = SADRESPONSE & VbCrLf
DISPLAY_Emotion = SAD
HALemotion = DISPLAY_Emotion
HalCommands = "<HAPFILE>" & HapFile & "</HAPFILE>"
'DEBUG
DebugInfo = DebugInfo & "The user is talking about SADness: " & SADRESPONSE & VbCrLf
Else
DebugInfo = DebugInfo & "Hal has found nothing about SADness: " & SADRESPONSE & VbCrLf
End If
'------------------------------------------------------------------
'------------------------------------------------------------------
'SURPRISED
'------------------------------------------------------------------
'sAVE user SURPRISED statement
If HalBrain.TopicSearch(OriginalSentence, WorkingDir & "DETECTSURPRISED.brn") = "TRUE" Then
AnswerSent = "" & Trim(OriginalSentence)
HalBrain.AppendFile WorkingDir & "STATEMENTSURPRISED" & ".brn", AnswerSent
End If
'RESPOND SURPRISED
If HalBrain.TopicSearch(OriginalSentence, WorkingDir & "DETECTSURPRISED.brn") = "TRUE" Then
HappyRESPONSE = HalBrain.ChooseSentenceFromFile(WorkingDir & "STATEMENTSURPRISED.brn")
GetResponse = SURPRISEDRESPONSE & VbCrLf
DISPLAY_Emotion = SURPRISED
HALemotion = DISPLAY_Emotion
HalCommands = "<HAPFILE>" & HapFile & "</HAPFILE>"
'DEBUG
DebugInfo = DebugInfo & "The user is talking about SURPRISED: " & SURPRISEDRESPONSE & VbCrLf
Else
DebugInfo = DebugInfo & "Hal has found nothing about SURPRISED: " & SURPRISEDRESPONSE & VbCrLf
End If
'------------------------------------------------------------------
'------------------------------------------------------------------
'ANGRY
'------------------------------------------------------------------
'sAVE user ANGRY statement
If HalBrain.TopicSearch(OriginalSentence, WorkingDir & "DETECTANGRY.brn") = "TRUE" Then
AnswerSent = "" & Trim(OriginalSentence)
HalBrain.AppendFile WorkingDir & "STATEMENTANGRY" & ".brn", AnswerSent
End If
'RESPOND ANGRY
If HalBrain.TopicSearch(OriginalSentence, WorkingDir & "DETECTANGRY.brn") = "TRUE" Then
HappyRESPONSE = HalBrain.ChooseSentenceFromFile(WorkingDir & "STATEMENTANGRY.brn")
GetResponse = ANGRYRESPONSE & VbCrLf
DISPLAY_Emotion = ANGRY
HALemotion = DISPLAY_Emotion
HalCommands = "<HAPFILE>" & HapFile & "</HAPFILE>"
'DEBUG
DebugInfo = DebugInfo & "The user is talking about ANGRY: " & ANGRYRESPONSE & VbCrLf
Else
DebugInfo = DebugInfo & "Hal has found nothing about ANGRY: " & ANGRYRESPONSE & VbCrLf
End If
'------------------------------------------------------------------
'================================ POST PROCESS ==================================
'--------------------------------------------------
'POST PROCESS: DISPLAY_Emotion
'--------------------------------------------------
'This function temporarily alters Hal's Haptek character's displayed emotion for a few seconds
'after each response.
DISPLAY_Emotion = HALemotion
If DISPLAY_Emotion <> "" Then
Select Case DISPLAY_Emotion
Case "ANGRY"
HapFile = "Angry.hap"
Case "HAPPY"
HapFile = "Happy.hap"
Case "SAD"
HapFile = "Sad.hap"
Case "SURPRISED"
HapFile = "Skeptic.hap"
Case Else
End Select
HalCommands = "<HAPFILE>" & HapFile & "</HAPFILE>"
DISPLAY_Emotion = ""
End If
'--------------------------------------------------
'-----------------------------------------------------------------------------------------------
'END OF SPYDAZ EMOTIONS SCRIPT DEVLOPMENT ENVIRONMENT
'-----------------------------------------------------------------------------------------------