mirror of
https://github.com/SWG-Source/dsrc.git
synced 2026-08-01 01:15:59 -04:00
183 lines
5.5 KiB
Plaintext
183 lines
5.5 KiB
Plaintext
// ======================================================================
|
|
|
|
include library.features;
|
|
include library.sui;
|
|
include library.utils;
|
|
|
|
// ======================================================================
|
|
|
|
const string ANNOUNCEMENT_BOX_TITLE = "Announcement Box Title";
|
|
|
|
// ======================================================================
|
|
|
|
trigger OnAttach()
|
|
{
|
|
debugSpeakMsg(self, "veteran test script attached. Say \"lewt\" to get stuff.");
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
trigger OnHearSpeech(obj_id speaker, string text)
|
|
{
|
|
if ( text == "lewt" )
|
|
{
|
|
checkForVeteranRewards(self);
|
|
}
|
|
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
void checkForVeteranRewards(obj_id self)
|
|
{
|
|
/*
|
|
int nextPromptTime = getIntObjVar(self,"veteran_rewards.nextPromptTime");
|
|
debugSpeakMsg(self,"Game time: " + getGameTime() + " Next prompt time: " + nextPromptTime);
|
|
if (nextPromptTime==0 || nextPromptTime < getGameTime())
|
|
{
|
|
removeObjVar(self,"veteran_rewards.nextPromptTime");
|
|
string event = veteranGetNextEvent(self);
|
|
if (event != "")
|
|
{
|
|
utils.setScriptVar(self,"veteran_rewards.event",event);
|
|
Vector choices = new Vector();
|
|
choices.addElement("@veteran:claim_now");
|
|
choices.addElement("@veteran:launch_web_browser_for_event");
|
|
choices.addElement("@veteran:ask_next_login");
|
|
choices.addElement("@veteran:ask_one_day");
|
|
choices.addElement("@veteran:ask_one_week");
|
|
int pid = sui.listbox(self, self, veteranGetEventAnnouncement(event), sui.OK_ONLY, ANNOUNCEMENT_BOX_TITLE, choices, "handleRewardAnnouncement", true, true);
|
|
}
|
|
}
|
|
else
|
|
debugSpeakMsg(self,"Not ready to prompt");
|
|
*/
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
messageHandler handleRewardAnnouncement()
|
|
{
|
|
string event = utils.getStringScriptVar(self, "veteran_rewards.event");
|
|
int rowSelected = sui.getListboxSelectedRow(params);
|
|
debugSpeakMsg(self,"In handleRewardAnnouncement. Row selected is " + rowSelected);
|
|
if (rowSelected==0)
|
|
chooseRewardForEvent(self, event);
|
|
else
|
|
{
|
|
if (rowSelected==1)
|
|
{
|
|
launchClientWebBrowser(self, veteranGetEventUrl(event));
|
|
checkForVeteranRewards(self);
|
|
}
|
|
if (rowSelected==2)
|
|
return SCRIPT_CONTINUE;
|
|
int waitForNextPrompt=0;
|
|
if (rowSelected==3)
|
|
waitForNextPrompt=24*60*60;
|
|
if (rowSelected==4)
|
|
waitForNextPrompt=7*24*60*60;
|
|
|
|
int gameTime = getGameTime();
|
|
int nextPromptTime = gameTime + waitForNextPrompt;
|
|
setObjVar(self,"veteran_rewards.nextPromptTime",nextPromptTime);
|
|
}
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
void chooseRewardForEvent(obj_id self, string event)
|
|
{
|
|
//TODO: remove from ignored events
|
|
|
|
string[] rewardChoices = veteranGetRewardChoicesDescriptions( self, event );
|
|
string[] rewardChoicesTags = veteranGetRewardChoicesTags( self, event );
|
|
utils.setScriptVar(self,"veteran_rewards.event",event);
|
|
utils.setScriptVar(self, "veteran_rewards.rewardTags", rewardChoicesTags);
|
|
//TODO: what abour events that let you claim more than one reward
|
|
if (rewardChoices.length==0)
|
|
{
|
|
//TODO: what?
|
|
}
|
|
else if (rewardChoices.length==1)
|
|
{
|
|
veteranClaimReward(self, event, rewardChoicesTags[0]);
|
|
}
|
|
else
|
|
{
|
|
// multiple possibilities, display a list box with the choices
|
|
string[] choicesWithLaunchWeb = new string[rewardChoices.length+1];
|
|
choicesWithLaunchWeb[0] = "@veteran:launch_web_browser_for_event";
|
|
for (int i=0; i<rewardChoices.length; ++i)
|
|
choicesWithLaunchWeb[i+1]=rewardChoices[i];
|
|
|
|
int pid = sui.listbox(self, self, veteranGetEventDescription(event), sui.OK_CANCEL, sui.DEFAULT_TITLE, choicesWithLaunchWeb, "rewardSelectHandler", true, true);
|
|
if ( pid < 0 )
|
|
{
|
|
debugSpeakMsg(self, "Could not create sui reward list for player, error = " + pid);
|
|
}
|
|
}
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
messageHandler rewardSelectHandler()
|
|
{
|
|
debugSpeakMsg(self, "In rewardSelectHandler message handler");
|
|
|
|
if ( (params == null) || (params.isEmpty()) )
|
|
{
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
int bp = sui.getIntButtonPressed(params);
|
|
int rowSelected = sui.getListboxSelectedRow(params);
|
|
if ( bp == sui.BP_CANCEL || rowSelected < 0)
|
|
{
|
|
debugSpeakMsg(self, "Cancel was pressed or no row was picked.");
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
string event = utils.getStringScriptVar(self, "veteran_rewards.event");
|
|
if (rowSelected==0)
|
|
{
|
|
launchClientWebBrowser(self, veteranGetEventUrl(event));
|
|
checkForVeteranRewards(self);
|
|
}
|
|
else
|
|
{
|
|
string[] rewardChoicesTags = utils.getStringArrayScriptVar(self, "veteran_rewards.rewardTags");
|
|
//TODO: range checking (how?)
|
|
debugSpeakMsg(self, "Choice is " + event + ":" + rewardChoicesTags[rowSelected-1]);
|
|
veteranClaimReward(self, event, rewardChoicesTags[rowSelected-1]);
|
|
}
|
|
return SCRIPT_CONTINUE;
|
|
// veteranGrantReward( self,
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
messageHandler veteranItemGrantSucceeded()
|
|
{
|
|
debugSpeakMsg(self, "In veteranItemGrantSucceeded message handler");
|
|
|
|
sendSystemMessage(self, new string_id("veteran","item_grant_succeeded"));
|
|
checkForVeteranRewards(self);
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
messageHandler veteranItemGrantFailed()
|
|
{
|
|
debugSpeakMsg(self, "In veteranItemGrantFailed message handler");
|
|
|
|
sendSystemMessage(self, new string_id("veteran","item_grant_failed"));
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
// ======================================================================
|