mirror of
https://github.com/SWG-Source/dsrc.git
synced 2026-08-03 03:15:55 -04:00
398 lines
12 KiB
Plaintext
398 lines
12 KiB
Plaintext
// ======================================================================
|
|
//
|
|
// loveday_disillusion_herald.script
|
|
//
|
|
//
|
|
//
|
|
// Created with SwgConversationEditor 1.37 - DO NOT EDIT THIS AUTO-GENERATED FILE!
|
|
//
|
|
// ======================================================================
|
|
|
|
// ======================================================================
|
|
// Library Includes
|
|
// ======================================================================
|
|
|
|
include library.ai_lib;
|
|
include library.chat;
|
|
include library.conversation;
|
|
include library.groundquests;
|
|
include library.utils;
|
|
|
|
// ======================================================================
|
|
// Script Constants
|
|
// ======================================================================
|
|
|
|
string c_stringFile = "conversation/loveday_disillusion_herald";
|
|
|
|
// ======================================================================
|
|
// Script Conditions
|
|
// ======================================================================
|
|
|
|
boolean loveday_disillusion_herald_condition__defaultCondition (obj_id player, obj_id npc)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
boolean loveday_disillusion_herald_condition_quest_pet_lover_Active (obj_id player, obj_id npc)
|
|
{
|
|
return groundquests.isQuestActive(player, "loveday_disillusion_pet_lover_v2");
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
boolean loveday_disillusion_herald_condition_questComplete (obj_id player, obj_id npc)
|
|
{
|
|
return hasCompletedCollectionSlot(player, "loveday_2010_disillusion_quest");
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
boolean loveday_disillusion_herald_condition_quest_love_note_Active (obj_id player, obj_id npc)
|
|
{
|
|
return groundquests.isQuestActive(player, "loveday_disillusion_love_note_v2");
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
boolean loveday_disillusion_herald_condition_quest_mr_hate_Active (obj_id player, obj_id npc)
|
|
{
|
|
return groundquests.isQuestActive(player, "loveday_disillusion_mr_hate_v2") ||
|
|
groundquests.isQuestActive(player, "loveday_disillusion_mr_hate_v2_noloot");
|
|
}
|
|
|
|
// ======================================================================
|
|
// Script Actions
|
|
// ======================================================================
|
|
|
|
void loveday_disillusion_herald_action_grantquest (obj_id player, obj_id npc)
|
|
{
|
|
// clear any obsolete versions of these quests
|
|
if ( groundquests.isQuestActive(player, "loveday_disillusion_pet_lover") )
|
|
groundquests.clearQuest(player, "loveday_disillusion_pet_lover");
|
|
|
|
if ( groundquests.isQuestActive(player, "loveday_disillusion_love_note") )
|
|
groundquests.clearQuest(player, "loveday_disillusion_love_note");
|
|
|
|
if ( groundquests.isQuestActive(player, "loveday_disillusion_mr_hate") )
|
|
groundquests.clearQuest(player, "loveday_disillusion_mr_hate");
|
|
// **************
|
|
|
|
if ( groundquests.isQuestActiveOrComplete(player, "loveday_disillusion_pet_lover_v2") )
|
|
groundquests.clearQuest(player, "loveday_disillusion_pet_lover_v2");
|
|
|
|
if ( groundquests.isQuestActiveOrComplete(player, "loveday_disillusion_love_note_v2") )
|
|
groundquests.clearQuest(player, "loveday_disillusion_love_note_v2");
|
|
|
|
groundquests.requestGrantQuest(player, "loveday_disillusion_pet_lover_v2");
|
|
}
|
|
|
|
// ======================================================================
|
|
// Script %TO Tokens
|
|
// ======================================================================
|
|
|
|
// ======================================================================
|
|
// Script %DI Tokens
|
|
// ======================================================================
|
|
|
|
// ======================================================================
|
|
// Script %DF Tokens
|
|
// ======================================================================
|
|
|
|
// ======================================================================
|
|
// handleBranch<n> Functions
|
|
// ======================================================================
|
|
|
|
int loveday_disillusion_herald_handleBranch5 (obj_id player, obj_id npc, string_id response)
|
|
{
|
|
//-- [BRANCH NOTE]
|
|
//-- NPC: Could you help me?
|
|
|
|
//-- [RESPONSE NOTE]
|
|
//-- PLAYER: Yes
|
|
if (response == "s_12")
|
|
{
|
|
//-- [NOTE]
|
|
if (loveday_disillusion_herald_condition__defaultCondition (player, npc))
|
|
{
|
|
//-- NPC: Oh thank you! My Festival of Love Sage, Benjamin, has fallen into despair...he has slipped to the Dark Side...of Love and lost all hope. Please help him find his way back to the Light Side...of Love!
|
|
string_id message = new string_id (c_stringFile, "s_14");
|
|
int numberOfResponses = 0;
|
|
|
|
boolean hasResponse = false;
|
|
|
|
//-- PLAYER: I will.
|
|
boolean hasResponse0 = false;
|
|
if (loveday_disillusion_herald_condition__defaultCondition (player, npc))
|
|
{
|
|
++numberOfResponses;
|
|
hasResponse = true;
|
|
hasResponse0 = true;
|
|
}
|
|
|
|
if (hasResponse)
|
|
{
|
|
int responseIndex = 0;
|
|
string_id responses [] = new string_id [numberOfResponses];
|
|
|
|
if (hasResponse0)
|
|
responses [responseIndex++] = new string_id (c_stringFile, "s_16");
|
|
|
|
utils.setScriptVar (player, "conversation.loveday_disillusion_herald.branchId", 6);
|
|
|
|
npcSpeak (player, message);
|
|
npcSetConversationResponses (player, responses);
|
|
}
|
|
else
|
|
{
|
|
utils.removeScriptVar (player, "conversation.loveday_disillusion_herald.branchId");
|
|
|
|
npcEndConversationWithMessage (player, message);
|
|
}
|
|
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
}
|
|
|
|
//-- [RESPONSE NOTE]
|
|
//-- PLAYER: No.
|
|
if (response == "s_20")
|
|
{
|
|
//-- [NOTE]
|
|
if (loveday_disillusion_herald_condition__defaultCondition (player, npc))
|
|
{
|
|
//-- NPC: You do realize that this is a festival of LOVE, right?
|
|
string_id message = new string_id (c_stringFile, "s_24");
|
|
utils.removeScriptVar (player, "conversation.loveday_disillusion_herald.branchId");
|
|
|
|
npcEndConversationWithMessage (player, message);
|
|
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
}
|
|
|
|
return SCRIPT_DEFAULT;
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
int loveday_disillusion_herald_handleBranch6 (obj_id player, obj_id npc, string_id response)
|
|
{
|
|
//-- [BRANCH NOTE]
|
|
//-- NPC: Oh thank you! My Festival of Love Sage, Benjamin, has fallen into despair...he has slipped to the Dark Side...of Love and lost all hope. Please help him find his way back to the Light Side...of Love!
|
|
|
|
//-- [RESPONSE NOTE]
|
|
//-- PLAYER: I will.
|
|
if (response == "s_16")
|
|
{
|
|
//-- [NOTE]
|
|
if (loveday_disillusion_herald_condition__defaultCondition (player, npc))
|
|
{
|
|
loveday_disillusion_herald_action_grantquest (player, npc);
|
|
|
|
//-- NPC: Thank you! And may the spirit of the Festival bring you success! You'll find Benjamin in Tyrena on Corellia.
|
|
string_id message = new string_id (c_stringFile, "s_18");
|
|
utils.removeScriptVar (player, "conversation.loveday_disillusion_herald.branchId");
|
|
|
|
npcEndConversationWithMessage (player, message);
|
|
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
}
|
|
|
|
return SCRIPT_DEFAULT;
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
// ======================================================================
|
|
// User Script Triggers
|
|
// ======================================================================
|
|
|
|
trigger OnInitialize ()
|
|
{
|
|
if ((!isTangible (self)) || (isPlayer (self)))
|
|
detachScript(self, "conversation.loveday_disillusion_herald");
|
|
|
|
setCondition (self, CONDITION_CONVERSABLE);
|
|
setCondition(self, CONDITION_HOLIDAY_INTERESTING);
|
|
|
|
ai_lib.setDefaultCalmBehavior (self, ai_lib.BEHAVIOR_SENTINEL);
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
trigger OnAttach ()
|
|
{
|
|
setCondition (self, CONDITION_CONVERSABLE);
|
|
setCondition(self, CONDITION_HOLIDAY_INTERESTING);
|
|
|
|
ai_lib.setDefaultCalmBehavior (self, ai_lib.BEHAVIOR_SENTINEL);
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
trigger OnObjectMenuRequest (obj_id player, menu_info menuInfo)
|
|
{
|
|
int menu = menuInfo.addRootMenu (menu_info_types.CONVERSE_START, null);
|
|
menu_info_data menuInfoData = menuInfo.getMenuItemById (menu);
|
|
menuInfoData.setServerNotify (false);
|
|
setCondition (self, CONDITION_CONVERSABLE);
|
|
setCondition(self, CONDITION_HOLIDAY_INTERESTING);
|
|
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
trigger OnIncapacitated (obj_id killer)
|
|
{
|
|
clearCondition (self, CONDITION_CONVERSABLE);
|
|
detachScript (self, "conversation.loveday_disillusion_herald");
|
|
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
// ======================================================================
|
|
// Script Triggers
|
|
// ======================================================================
|
|
|
|
//-- This function should move to base_class.java
|
|
boolean npcStartConversation(obj_id player, obj_id npc, string convoName, string_id greetingId, prose_package greetingProse, string_id[] responses)
|
|
{
|
|
Object[] objects = new Object[responses.length];
|
|
System.arraycopy(responses, 0, objects, 0, responses.length);
|
|
return npcStartConversation(player, npc, convoName, greetingId, greetingProse, objects);
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
trigger OnStartNpcConversation (obj_id player)
|
|
{
|
|
obj_id npc = self;
|
|
|
|
if (ai_lib.isInCombat (npc) || ai_lib.isInCombat (player))
|
|
return SCRIPT_OVERRIDE;
|
|
|
|
//-- [NOTE]
|
|
if (loveday_disillusion_herald_condition_questComplete (player, npc))
|
|
{
|
|
//-- NPC: Thank you so much for helping Benjamin!
|
|
string_id message = new string_id (c_stringFile, "s_4");
|
|
chat.chat (npc, player, message);
|
|
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
//-- [NOTE]
|
|
if (loveday_disillusion_herald_condition_quest_mr_hate_Active (player, npc))
|
|
{
|
|
//-- NPC: Please find a way to help Benjamin return to the Light Side...of Love. I know you'll succeed!
|
|
string_id message = new string_id (c_stringFile, "s_21");
|
|
chat.chat (npc, player, message);
|
|
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
//-- [NOTE]
|
|
if (loveday_disillusion_herald_condition_quest_love_note_Active (player, npc))
|
|
{
|
|
//-- NPC: Please find a way to help Benjamin return to the Light Side...of Love. Please!
|
|
string_id message = new string_id (c_stringFile, "s_22");
|
|
chat.chat (npc, player, message);
|
|
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
//-- [NOTE]
|
|
if (loveday_disillusion_herald_condition_quest_pet_lover_Active (player, npc))
|
|
{
|
|
//-- NPC: Please find a way to help Benjamin return to the Light Side...of Love.
|
|
string_id message = new string_id (c_stringFile, "s_8");
|
|
chat.chat (npc, player, message);
|
|
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
//-- [NOTE]
|
|
if (loveday_disillusion_herald_condition__defaultCondition (player, npc))
|
|
{
|
|
//-- NPC: Could you help me?
|
|
string_id message = new string_id (c_stringFile, "s_10");
|
|
int numberOfResponses = 0;
|
|
|
|
boolean hasResponse = false;
|
|
|
|
//-- PLAYER: Yes
|
|
boolean hasResponse0 = false;
|
|
if (loveday_disillusion_herald_condition__defaultCondition (player, npc))
|
|
{
|
|
++numberOfResponses;
|
|
hasResponse = true;
|
|
hasResponse0 = true;
|
|
}
|
|
|
|
//-- PLAYER: No.
|
|
boolean hasResponse1 = false;
|
|
if (loveday_disillusion_herald_condition__defaultCondition (player, npc))
|
|
{
|
|
++numberOfResponses;
|
|
hasResponse = true;
|
|
hasResponse1 = true;
|
|
}
|
|
|
|
if (hasResponse)
|
|
{
|
|
int responseIndex = 0;
|
|
string_id responses [] = new string_id [numberOfResponses];
|
|
|
|
if (hasResponse0)
|
|
responses [responseIndex++] = new string_id (c_stringFile, "s_12");
|
|
|
|
if (hasResponse1)
|
|
responses [responseIndex++] = new string_id (c_stringFile, "s_20");
|
|
|
|
utils.setScriptVar (player, "conversation.loveday_disillusion_herald.branchId", 5);
|
|
|
|
npcStartConversation (player, npc, "loveday_disillusion_herald", message, responses);
|
|
}
|
|
else
|
|
{
|
|
chat.chat (npc, player, message);
|
|
}
|
|
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
chat.chat (npc, "Error: All conditions for OnStartNpcConversation were false.");
|
|
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
trigger OnNpcConversationResponse (string conversationId, obj_id player, string_id response)
|
|
{
|
|
if (conversationId != "loveday_disillusion_herald")
|
|
return SCRIPT_CONTINUE;
|
|
|
|
obj_id npc = self;
|
|
|
|
int branchId = utils.getIntScriptVar (player, "conversation.loveday_disillusion_herald.branchId");
|
|
|
|
if (branchId == 5 && loveday_disillusion_herald_handleBranch5 (player, npc, response) == SCRIPT_CONTINUE)
|
|
return SCRIPT_CONTINUE;
|
|
|
|
if (branchId == 6 && loveday_disillusion_herald_handleBranch6 (player, npc, response) == SCRIPT_CONTINUE)
|
|
return SCRIPT_CONTINUE;
|
|
|
|
chat.chat (npc, "Error: Fell through all branches and responses for OnNpcConversationResponse.");
|
|
|
|
utils.removeScriptVar (player, "conversation.loveday_disillusion_herald.branchId");
|
|
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
// ======================================================================
|
|
|