Files
dsrc/sku.0/sys.server/compiled/game/script/conversation/loveday_matchmaker_droid.script
T

595 lines
18 KiB
Plaintext

// ======================================================================
//
// loveday_matchmaker_droid.script
// Copyright 2004, Sony Online Entertainment
// All Rights Reserved.
//
// 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.holiday;
include library.utils;
// ======================================================================
// Script Constants
// ======================================================================
string c_stringFile = "conversation/loveday_matchmaker_droid";
// ======================================================================
// Script Conditions
// ======================================================================
boolean loveday_matchmaker_droid_condition__defaultCondition (obj_id player, obj_id npc)
{
return true;
}
// ----------------------------------------------------------------------
boolean loveday_matchmaker_droid_condition_returningMatchIncomplete (obj_id player, obj_id npc)
{
return holiday.hasLovedayRomanceSeekerCompanion(player) &&
groundquests.isTaskActive(player, "loveday_playing_cupid", "loveday_playing_cupid_01");
}
// ----------------------------------------------------------------------
boolean loveday_matchmaker_droid_condition_returningMatchComplete (obj_id player, obj_id npc)
{
return holiday.hasLovedayRomanceSeekerCompanion(player) &&
groundquests.isTaskActive(player, "loveday_playing_cupid", "loveday_playing_cupid_02");
}
// ----------------------------------------------------------------------
boolean loveday_matchmaker_droid_condition_notYetReadyForAnother (obj_id player, obj_id npc)
{
if ( groundquests.hasCompletedQuest(player, "loveday_playing_cupid") && hasObjVar(player, "loveday.eligiblePlayingCupid") )
{
int eligibleForNextQuestAt = getIntObjVar(player, "loveday.eligiblePlayingCupid");
if ( getCalendarTime() < eligibleForNextQuestAt )
{
return true;
}
}
return false;
}
// ======================================================================
// Script Actions
// ======================================================================
void loveday_matchmaker_droid_action_grantLovedayQuest (obj_id player, obj_id npc)
{
if ( hasObjVar(player, "loveday.eligiblePlayingCupid") )
{
removeObjVar(player, "loveday.eligiblePlayingCupid");
if ( utils.hasScriptVar(player, "loveday.todaysCompanion") )
{
utils.removeScriptVar(player, "loveday.todaysCompanion");
}
if ( utils.hasScriptVar(player, "loveday.todaysCompanionTraits") )
{
utils.removeScriptVar(player, "loveday.todaysCompanionTraits");
}
}
if ( holiday.hasLovedayRomanceSeekerCompanion(player) )
{
obj_id romanceSeekerCompanionControlDevice = holiday.getLovedayRomanceSeekerCompanionControlDevice(player);
if ( isIdValid(romanceSeekerCompanionControlDevice) )
{
destroyObject(romanceSeekerCompanionControlDevice);
}
}
groundquests.clearQuest(player, "loveday_playing_cupid");
groundquests.grantQuest(player, "loveday_playing_cupid");
holiday.grantLovedayRomanceSeekerCompanion(player);
return;
}
// ----------------------------------------------------------------------
void loveday_matchmaker_droid_action_sendCompletionSignal (obj_id player, obj_id npc)
{
string companionType = "";
obj_id romanceSeekerCompanionControlDevice = holiday.getLovedayRomanceSeekerCompanionControlDevice(player);
if ( isIdValid(romanceSeekerCompanionControlDevice) )
{
companionType = getStringObjVar(romanceSeekerCompanionControlDevice, "pet.creatureName");
destroyObject(romanceSeekerCompanionControlDevice);
}
groundquests.sendSignal(player, "loveday_playing_cupid_02");
if ( !hasCompletedCollectionSlot(player, "loveday_2010_playing_cupid") )
{
modifyCollectionSlotValue(player, "loveday_2010_playing_cupid", 1);
}
if ( companionType != null && companionType.length() > 0 )
{
holiday.checkForAndGrantLovedayMatchmakingSlot(player, companionType);
}
int now = getCalendarTime();
int secondsUntil = secondsUntilNextDailyTime(4, 0, 0);
int then = now + secondsUntil;
setObjVar(player, "loveday.eligiblePlayingCupid", then);
}
// ======================================================================
// Script %TO Tokens
// ======================================================================
// ======================================================================
// Script %DI Tokens
// ======================================================================
// ======================================================================
// Script %DF Tokens
// ======================================================================
// ======================================================================
// handleBranch<n> Functions
// ======================================================================
int loveday_matchmaker_droid_handleBranch1 (obj_id player, obj_id npc, string_id response)
{
//-- [BRANCH NOTE]
//-- NPC: You have made this a Festival of love to remember for those two lucky people! Well done.
//-- [RESPONSE NOTE]
//-- PLAYER: Thank you.
if (response == "s_21")
{
//-- [NOTE]
if (loveday_matchmaker_droid_condition__defaultCondition (player, npc))
{
loveday_matchmaker_droid_action_sendCompletionSignal (player, npc);
//-- NPC: No, thank you. The galaxy has a bit more love in it thanks to you. And please come back tomorrow. I'm sure I can find someone else for you to match by then!
string_id message = new string_id (c_stringFile, "s_22");
utils.removeScriptVar (player, "conversation.loveday_matchmaker_droid.branchId");
npcEndConversationWithMessage (player, message);
return SCRIPT_CONTINUE;
}
}
return SCRIPT_DEFAULT;
}
// ----------------------------------------------------------------------
int loveday_matchmaker_droid_handleBranch5 (obj_id player, obj_id npc, string_id response)
{
//-- [BRANCH NOTE]
//-- NPC: Step right up, my friend. I have a proposition for you. During this Festival that celebrates Love and Romance, there are those who lack someone with whom to share their life. You can help change that. Are you interested?
//-- [RESPONSE NOTE]
//-- PLAYER: I would be glad to help.
if (response == "s_14")
{
//-- [NOTE]
if (loveday_matchmaker_droid_condition__defaultCondition (player, npc))
{
doAnimationAction (npc, "clap_rousing");
//-- NPC: Of course you would! I could tell from the first moment I saw you. Very well, I will assign you a companion. Your job is, quite simply, to find them someone who matches them in the hope that true love will spark.
string_id message = new string_id (c_stringFile, "s_16");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: I'm ready to go.
boolean hasResponse0 = false;
if (loveday_matchmaker_droid_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: How will I do that?
boolean hasResponse1 = false;
if (loveday_matchmaker_droid_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_23");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_25");
utils.setScriptVar (player, "conversation.loveday_matchmaker_droid.branchId", 6);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.loveday_matchmaker_droid.branchId");
npcEndConversationWithMessage (player, message);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: No thanks.
if (response == "s_32")
{
//-- [NOTE]
if (loveday_matchmaker_droid_condition__defaultCondition (player, npc))
{
doAnimationAction (npc, "weeping");
//-- NPC: Oh, I see. Happy Festival of Love to you.
string_id message = new string_id (c_stringFile, "s_34");
utils.removeScriptVar (player, "conversation.loveday_matchmaker_droid.branchId");
npcEndConversationWithMessage (player, message);
return SCRIPT_CONTINUE;
}
}
return SCRIPT_DEFAULT;
}
// ----------------------------------------------------------------------
int loveday_matchmaker_droid_handleBranch6 (obj_id player, obj_id npc, string_id response)
{
//-- [BRANCH NOTE]
//-- NPC: Of course you would! I could tell from the first moment I saw you. Very well, I will assign you a companion. Your job is, quite simply, to find them someone who matches them in the hope that true love will spark.
//-- [RESPONSE NOTE]
//-- PLAYER: I'm ready to go.
if (response == "s_23")
{
//-- [NOTE]
if (loveday_matchmaker_droid_condition__defaultCondition (player, npc))
{
loveday_matchmaker_droid_action_grantLovedayQuest (player, npc);
//-- NPC: Wasting no time...I like that.
string_id message = new string_id (c_stringFile, "s_24");
utils.removeScriptVar (player, "conversation.loveday_matchmaker_droid.branchId");
npcEndConversationWithMessage (player, message);
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: How will I do that?
if (response == "s_25")
{
//-- [NOTE]
if (loveday_matchmaker_droid_condition__defaultCondition (player, npc))
{
//-- NPC: Throughout Tyrena on Corellia and Kaadara on Naboo, there are potential matches for your companion. These people are also looking for love and have come to us for assistance. Speak with your companion and learn what kind of things he or she is looking for, then speak with those potential soul-mates until you find one that matches. Nothing could be easier!
string_id message = new string_id (c_stringFile, "s_26");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: okay, I'm ready to go.
boolean hasResponse0 = false;
if (loveday_matchmaker_droid_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_28");
utils.setScriptVar (player, "conversation.loveday_matchmaker_droid.branchId", 8);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.loveday_matchmaker_droid.branchId");
npcEndConversationWithMessage (player, message);
}
return SCRIPT_CONTINUE;
}
}
return SCRIPT_DEFAULT;
}
// ----------------------------------------------------------------------
int loveday_matchmaker_droid_handleBranch8 (obj_id player, obj_id npc, string_id response)
{
//-- [BRANCH NOTE]
//-- NPC: Throughout Tyrena on Corellia and Kaadara on Naboo, there are potential matches for your companion. These people are also looking for love and have come to us for assistance. Speak with your companion and learn what kind of things he or she is looking for, then speak with those potential soul-mates until you find one that matches. Nothing could be easier!
//-- [RESPONSE NOTE]
//-- PLAYER: okay, I'm ready to go.
if (response == "s_28")
{
//-- [NOTE]
if (loveday_matchmaker_droid_condition__defaultCondition (player, npc))
{
loveday_matchmaker_droid_action_grantLovedayQuest (player, npc);
//-- NPC: Then let's get started!
string_id message = new string_id (c_stringFile, "s_30");
utils.removeScriptVar (player, "conversation.loveday_matchmaker_droid.branchId");
npcEndConversationWithMessage (player, message);
return SCRIPT_CONTINUE;
}
}
return SCRIPT_DEFAULT;
}
// ----------------------------------------------------------------------
// ======================================================================
// User Script Triggers
// ======================================================================
trigger OnInitialize ()
{
if ((!isTangible (self)) || (isPlayer (self)))
detachScript(self, "conversation.loveday_matchmaker_droid");
setCondition(self, CONDITION_CONVERSABLE);
setCondition(self, CONDITION_HOLIDAY_INTERESTING);
return SCRIPT_CONTINUE;
}
trigger OnAttach ()
{
setCondition (self, CONDITION_CONVERSABLE);
setCondition(self, CONDITION_HOLIDAY_INTERESTING);
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);
faceTo(self, player);
return SCRIPT_CONTINUE;
}
trigger OnIncapacitated (obj_id killer)
{
clearCondition (self, CONDITION_CONVERSABLE);
clearCondition (self, CONDITION_SPACE_INTERESTING);
detachScript (self, "conversation.loveday_matchmaker_droid");
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_matchmaker_droid_condition_returningMatchComplete (player, npc))
{
//-- NPC: You have made this a Festival of love to remember for those two lucky people! Well done.
string_id message = new string_id (c_stringFile, "s_4");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: Thank you.
boolean hasResponse0 = false;
if (loveday_matchmaker_droid_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_21");
utils.setScriptVar (player, "conversation.loveday_matchmaker_droid.branchId", 1);
npcStartConversation (player, npc, "loveday_matchmaker_droid", message, responses);
}
else
{
chat.chat (npc, player, message);
}
return SCRIPT_CONTINUE;
}
//-- [NOTE]
if (loveday_matchmaker_droid_condition_returningMatchIncomplete (player, npc))
{
//-- NPC: Get to it. These people won't find a soul-mate on their own. Believe me, they've tried.
string_id message = new string_id (c_stringFile, "s_8");
chat.chat (npc, player, message);
return SCRIPT_CONTINUE;
}
//-- [NOTE]
if (loveday_matchmaker_droid_condition_notYetReadyForAnother (player, npc))
{
//-- NPC: Try again tomorrow with another lost and lonely soul!
string_id message = new string_id (c_stringFile, "s_10");
chat.chat (npc, player, message);
return SCRIPT_CONTINUE;
}
//-- [NOTE]
if (loveday_matchmaker_droid_condition__defaultCondition (player, npc))
{
doAnimationAction (npc, "beckon");
//-- NPC: Step right up, my friend. I have a proposition for you. During this Festival that celebrates Love and Romance, there are those who lack someone with whom to share their life. You can help change that. Are you interested?
string_id message = new string_id (c_stringFile, "s_12");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: I would be glad to help.
boolean hasResponse0 = false;
if (loveday_matchmaker_droid_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: No thanks.
boolean hasResponse1 = false;
if (loveday_matchmaker_droid_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_14");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_32");
utils.setScriptVar (player, "conversation.loveday_matchmaker_droid.branchId", 5);
npcStartConversation (player, npc, "loveday_matchmaker_droid", 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_matchmaker_droid")
return SCRIPT_CONTINUE;
obj_id npc = self;
int branchId = utils.getIntScriptVar (player, "conversation.loveday_matchmaker_droid.branchId");
if (branchId == 1 && loveday_matchmaker_droid_handleBranch1 (player, npc, response) == SCRIPT_CONTINUE)
return SCRIPT_CONTINUE;
if (branchId == 5 && loveday_matchmaker_droid_handleBranch5 (player, npc, response) == SCRIPT_CONTINUE)
return SCRIPT_CONTINUE;
if (branchId == 6 && loveday_matchmaker_droid_handleBranch6 (player, npc, response) == SCRIPT_CONTINUE)
return SCRIPT_CONTINUE;
if (branchId == 8 && loveday_matchmaker_droid_handleBranch8 (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_matchmaker_droid.branchId");
return SCRIPT_CONTINUE;
}
// ======================================================================