mirror of
https://github.com/SWG-Source/dsrc.git
synced 2026-07-13 22:01:04 -04:00
* Code compiles - execution NOT tested * updating gitignore * Removed intellij settings files * Removed more intellij files * Added exclusion for JDK classes. * Fixed purchasing script for vendors that have listed coin types. * Updated script to not kick off until the entire preload is complete. * adds static name entry for Solo movie poster and tcg9 vendor entry * clean up empty and orphaned object templates * adds placeholder black market (static) spawns * corrects entries for the video game table to correctly set it in tcg series 2 and remove series 1 console errors * Updated gitignore and removed intellij project files * Fixed appearance reference for thranta payroll and kashyyyk door, added skipLosCheck objvar due to cannit see issue. Requires updated src * Fixed appearance and template for terminal (#2) * Fixed appearance and template for terminal (#3) * Fixed appearance and template for terminal (#4) * Deleted another faulty/orphaned object template * Fixed gcw ranks option on frog. Only issue is that it doesn't award the officer commands or badges. * Fixed some unneeded java 11 changes
592 lines
26 KiB
Java
Executable File
592 lines
26 KiB
Java
Executable File
package script.terminal;
|
|
|
|
import script.*;
|
|
import script.library.player_structure;
|
|
import script.library.sui;
|
|
import script.library.utils;
|
|
import script.library.xp;
|
|
|
|
import java.util.Vector;
|
|
|
|
public class ballot_box extends script.base_script
|
|
{
|
|
public ballot_box()
|
|
{
|
|
}
|
|
public static final int BALLOT_TEXT_MAX_LENGTH = 120;
|
|
public static final int BALLOT_TITLE_MAX_LENGTH = 32;
|
|
public static final int BALLOT_ITEM_MAX_LENGTH = 64;
|
|
public static final int BALLOT_ITEM_MAX_COUNT = 16;
|
|
public static final string_id SID_CONFIGURE_BALLOT = new string_id("sui", "ballot_box_config");
|
|
public static final string_id SID_ADD_OPTION = new string_id("sui", "ballot_box_add_option");
|
|
public static final string_id SID_VIEW_RESULTS = new string_id("sui", "ballot_box_view_results");
|
|
public static final string_id SID_VOTE = new string_id("sui", "ballot_box_vote");
|
|
public static final string_id SID_VOTE_LOGGED_MSG = new string_id("sui", "ballot_box_vote_logged");
|
|
public static final string_id SID_EDIT_BALLOT_TITLE = new string_id("sui", "ballot_box_edit_title");
|
|
public static final string_id SID_EDIT_BALLOT_TEXT = new string_id("sui", "ballot_box_edit_text");
|
|
public static final string_id SID_START_VOTE = new string_id("sui", "ballot_box_start_vote");
|
|
public static final string_id SID_STOP_VOTE = new string_id("sui", "ballot_box_stop_vote");
|
|
public static final string_id SID_MUST_STOP_VOTE_MSG = new string_id("sui", "ballot_box_must_stop");
|
|
public static final string_id SID_START_VOTE_MSG = new string_id("sui", "ballot_box_start_msg");
|
|
public static final string_id SID_STOP_VOTE_MSG = new string_id("sui", "ballot_box_stop_msg");
|
|
public static final string_id SID_VIEW_BALLOT = new string_id("sui", "ballot_box_view_ballot");
|
|
public static final string_id SID_CLEAR_LOG = new string_id("sui", "ballot_box_clear_log");
|
|
public static final string_id SID_TEXT_TOO_LARGE = new string_id("sui", "ballot_text_too_large");
|
|
public static final string_id SID_TITLE_TOO_LARGE = new string_id("sui", "ballot_title_too_large");
|
|
public static final string_id SID_ITEM_TOO_LARGE = new string_id("sui", "ballot_item_too_large");
|
|
public static final string_id SID_ITEMS_TOO_MANY = new string_id("sui", "ballot_items_too_many");
|
|
public static final string_id SID_SECRET = new string_id("sui", "ballot_box_secret");
|
|
public static final string_id SID_PUBLIC = new string_id("sui", "ballot_box_public");
|
|
public static final string_id SID_EDIT_BALLOT = new string_id("sui", "ballot_box_edit");
|
|
public static final string_id SID_REMOVE_OPTION = new string_id("sui", "ballot_box_remove_option");
|
|
public static final string_id SID_SECRET_CONFIRM = new string_id("sui", "ballot_box_secret_confirm");
|
|
public static final string_id SID_PUBLIC_CONFIRM = new string_id("sui", "ballot_box_public_confirm");
|
|
public static final string_id SID_SAMPLE_ONE = new string_id("sui", "ballot_box_sample_one");
|
|
public static final string_id SID_SAMPLE_TWO = new string_id("sui", "ballot_box_sample_two");
|
|
public static final string_id SID_CLEAR_MSG = new string_id("sui", "ballot_box_clear_msg");
|
|
public static final string_id SID_CONFIG_BALLOT_TEXT = new string_id("sui", "ballot_box_config_text");
|
|
public static final string_id SID_CONFIG_BALLOT_TITLE = new string_id("sui", "ballot_box_config_title");
|
|
public static final string_id SID_CONFIG_ADD_ITEM = new string_id("sui", "ballot_box_config_add_item");
|
|
public static final string_id SID_RESULTS_TITLE = new string_id("sui", "ballot_box_results_title");
|
|
public static final string_id SID_DEFAULT_BALLOT_TITLE = new string_id("sui", "ballot_box_sample_title");
|
|
public static final string_id SID_DEFAULT_BALLOT_TEXT = new string_id("sui", "ballot_box_sample_text");
|
|
public static final string_id SID_REMOVE_ITEM_TEXT = new string_id("sui", "ballot_box_remove_option_text");
|
|
public static final string_id SID_DEFAULT_BALLOT_RESULTS = new string_id("sui", "ballot_box_default_results");
|
|
public static final string_id SID_OPEN_STATE_TEXT = new string_id("sui", "ballot_box_open_text");
|
|
public static final string_id SID_CLOSED_STATE_TEXT = new string_id("sui", "ballot_box_closed_text");
|
|
public static final String[] DEFAULT_BALLOT_OPTIONS =
|
|
{
|
|
"Sample Option One",
|
|
"Sample Option Two"
|
|
};
|
|
public static final obj_id[] DEFAULT_PARTICIPANTS = new obj_id[0];
|
|
public static final int[] DEFAULT_VOTE_TALLY = new int[0];
|
|
public static final string_id SID_CHAT_BAND_TEXT = new string_id("sui", "ballot_box_band");
|
|
public static final string_id SID_CHAT_TITLE = new string_id("sui", "ballot_box_chat_title");
|
|
public static final String[] EDIT_OPTIONS =
|
|
{
|
|
"@sui:ballot_box_edit_title",
|
|
"@sui:ballot_box_edit_text",
|
|
"@sui:ballot_box_add_option",
|
|
"@sui:ballot_box_remove_option",
|
|
"@sui:ballot_box_start_vote",
|
|
"@sui:ballot_box_secret"
|
|
};
|
|
public static final String VAR_BALLOT_TEXT = "var_ballot_text";
|
|
public static final String VAR_BALLOT_TITLE = "var_ballot_title";
|
|
public static final String VAR_BALLOT_STATE_TEXT = "var_ballot_state";
|
|
public static final String VAR_BALLOT_RESULTS = "var_ballot_results";
|
|
public static final String VAR_BALLOT_OPTIONS = "var_ballot_options";
|
|
public static final String VAR_EDIT_OPTIONS = "var_edit_options";
|
|
public static final String VAR_PARTICIPANTS = "var_ballot_participants";
|
|
public static final String VAR_VOTE_TALLY = "var_vote_tally";
|
|
public static final String VAR_TOTAL_VOTES = "var_total_votes";
|
|
public static final String VAR_LOG_COUNT = "var_ballot_log_count";
|
|
public static final String VAR_BALLOT_BOX_OWNER = "var_ballot_box_owner";
|
|
public static final String VAR_IS_SECRET_MSG = "var_secret_msg";
|
|
public int OnInitialize(obj_id self) throws InterruptedException
|
|
{
|
|
setObjVar(self, "ballot_box_id", getCurrentSceneName());
|
|
setObjVar(self, VAR_BALLOT_TEXT, getString(SID_DEFAULT_BALLOT_TEXT));
|
|
setObjVar(self, VAR_BALLOT_TITLE, getString(SID_DEFAULT_BALLOT_TITLE));
|
|
setObjVar(self, VAR_BALLOT_STATE_TEXT, getString(SID_CLOSED_STATE_TEXT));
|
|
setObjVar(self, VAR_BALLOT_RESULTS, getString(SID_DEFAULT_BALLOT_RESULTS));
|
|
setObjVar(self, VAR_TOTAL_VOTES, 0);
|
|
setObjVar(self, VAR_BALLOT_OPTIONS, DEFAULT_BALLOT_OPTIONS);
|
|
setObjVar(self, VAR_EDIT_OPTIONS, EDIT_OPTIONS);
|
|
setObjVar(self, VAR_IS_SECRET_MSG, false);
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
public int OnObjectMenuRequest(obj_id self, obj_id player, menu_info mi) throws InterruptedException
|
|
{
|
|
String stateStr = getStringObjVar(self, VAR_BALLOT_STATE_TEXT);
|
|
obj_id structure = getTopMostContainer(self);
|
|
if (structure != null && player_structure.isAdmin(structure, player))
|
|
{
|
|
int menu = mi.addRootMenu(menu_info_types.CREATE_BALLOT, SID_CONFIGURE_BALLOT);
|
|
if (stateStr.equals(getString(SID_OPEN_STATE_TEXT)))
|
|
{
|
|
mi.addSubMenu(menu, menu_info_types.DICE_COUNT_FOUR, SID_STOP_VOTE);
|
|
}
|
|
else
|
|
{
|
|
setObjVar(self, VAR_BALLOT_BOX_OWNER, player);
|
|
mi.addSubMenu(menu, menu_info_types.DICE_EIGHT_FACE, SID_CLEAR_LOG);
|
|
mi.addSubMenu(menu, menu_info_types.DICE_FIVE_FACE, SID_EDIT_BALLOT);
|
|
mi.addSubMenu(menu, menu_info_types.DICE_FOUR_FACE, SID_VIEW_BALLOT);
|
|
mi.addSubMenu(menu, menu_info_types.DICE_COUNT_THREE, SID_START_VOTE);
|
|
}
|
|
}
|
|
obj_id[] participants = getObjIdArrayObjVar(self, VAR_PARTICIPANTS);
|
|
if (!utils.isObjIdInArray(participants, player) && stateStr.equals(getString(SID_OPEN_STATE_TEXT)))
|
|
{
|
|
mi.addRootMenu(menu_info_types.VOTE, SID_VOTE);
|
|
mi.addRootMenu(menu_info_types.DICE_THREE_FACE, SID_VIEW_BALLOT);
|
|
}
|
|
else if (stateStr.equals(getString(SID_OPEN_STATE_TEXT)))
|
|
{
|
|
mi.addRootMenu(menu_info_types.DICE_THREE_FACE, SID_VIEW_BALLOT);
|
|
}
|
|
else
|
|
{
|
|
mi.addRootMenu(menu_info_types.DICE_TWO_FACE, SID_VIEW_RESULTS);
|
|
}
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
public int OnObjectMenuSelect(obj_id self, obj_id player, int item) throws InterruptedException
|
|
{
|
|
if (item == menu_info_types.DICE_THREE_FACE)
|
|
{
|
|
viewBallot(player, self);
|
|
}
|
|
else if (item == menu_info_types.DICE_COUNT_FOUR)
|
|
{
|
|
stopVote(player, self);
|
|
}
|
|
else if (item == menu_info_types.DICE_FOUR_FACE)
|
|
{
|
|
ownerViewBallot(player, self);
|
|
}
|
|
else if (item == menu_info_types.DICE_FIVE_FACE)
|
|
{
|
|
editBallot(player, self);
|
|
}
|
|
else if (item == menu_info_types.DICE_EIGHT_FACE)
|
|
{
|
|
removeLogResults(player, self, true);
|
|
}
|
|
else if (item == menu_info_types.DICE_COUNT_THREE)
|
|
{
|
|
startVote(player, self);
|
|
}
|
|
else if (item == menu_info_types.VOTE)
|
|
{
|
|
vote(player, self);
|
|
}
|
|
else if (item == menu_info_types.ITEM_USE || item == menu_info_types.DICE_TWO_FACE)
|
|
{
|
|
viewResults(player, self);
|
|
}
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
public void editBallot(obj_id player, obj_id terminal) throws InterruptedException
|
|
{
|
|
if ((getStringObjVar(terminal, VAR_BALLOT_STATE_TEXT)).equals(getString(SID_OPEN_STATE_TEXT)))
|
|
{
|
|
sendSystemMessage(player, SID_MUST_STOP_VOTE_MSG);
|
|
return;
|
|
}
|
|
String ballot_text = getBallotViewData(terminal);
|
|
String[] options = getStringArrayObjVar(terminal, VAR_EDIT_OPTIONS);
|
|
sui.listbox(terminal, player, ballot_text, sui.OK_CANCEL, getString(SID_EDIT_BALLOT), options, "configureBallot", true, true);
|
|
}
|
|
public void makeResultsSecret(obj_id owner, obj_id terminal) throws InterruptedException
|
|
{
|
|
setObjVar(terminal, VAR_IS_SECRET_MSG, true);
|
|
sendSystemMessage(owner, SID_SECRET_CONFIRM);
|
|
String[] options = getStringArrayObjVar(terminal, VAR_EDIT_OPTIONS);
|
|
if (options != null && options.length > 0)
|
|
{
|
|
options[5] = getString(SID_PUBLIC);
|
|
setObjVar(terminal, VAR_EDIT_OPTIONS, options);
|
|
}
|
|
editBallot(owner, terminal);
|
|
}
|
|
public void makeResultsPublic(obj_id owner, obj_id terminal) throws InterruptedException
|
|
{
|
|
setObjVar(terminal, VAR_IS_SECRET_MSG, false);
|
|
sendSystemMessage(owner, SID_PUBLIC_CONFIRM);
|
|
String[] options = getStringArrayObjVar(terminal, VAR_EDIT_OPTIONS);
|
|
if (options != null && options.length > 0)
|
|
{
|
|
options[5] = getString(SID_SECRET);
|
|
setObjVar(terminal, VAR_EDIT_OPTIONS, options);
|
|
}
|
|
editBallot(owner, terminal);
|
|
}
|
|
public void removeSelectionItem(obj_id owner, obj_id terminal) throws InterruptedException
|
|
{
|
|
String title = getStringObjVar(terminal, VAR_BALLOT_TITLE);
|
|
String text = getString(SID_REMOVE_ITEM_TEXT);
|
|
String[] options = getStringArrayObjVar(terminal, VAR_BALLOT_OPTIONS);
|
|
sui.listbox(terminal, owner, text, sui.OK_CANCEL, title, options, "removeItem");
|
|
}
|
|
public void addSelectionItem(obj_id owner, obj_id terminal) throws InterruptedException
|
|
{
|
|
if ((getStringObjVar(terminal, VAR_BALLOT_STATE_TEXT)).equals(getString(SID_OPEN_STATE_TEXT)))
|
|
{
|
|
sendSystemMessage(owner, SID_MUST_STOP_VOTE_MSG);
|
|
return;
|
|
}
|
|
String[] items = getStringArrayObjVar(terminal, VAR_BALLOT_OPTIONS);
|
|
if (items == null)
|
|
{
|
|
String[] options = new String[0];
|
|
setObjVar(terminal, VAR_BALLOT_OPTIONS, DEFAULT_BALLOT_OPTIONS);
|
|
}
|
|
String ballot_text = getString(SID_CONFIG_ADD_ITEM);
|
|
int pid = sui.inputbox(terminal, owner, ballot_text, sui.OK_CANCEL, getString(SID_ADD_OPTION), sui.INPUT_NORMAL, null, "addItem");
|
|
}
|
|
public void ownerViewBallot(obj_id owner, obj_id terminal) throws InterruptedException
|
|
{
|
|
String title = getStringObjVar(terminal, VAR_BALLOT_TITLE);
|
|
String text = getStringObjVar(terminal, VAR_BALLOT_TEXT);
|
|
String[] options = getStringArrayObjVar(terminal, VAR_BALLOT_OPTIONS);
|
|
sui.listbox(terminal, owner, text, sui.OK_ONLY, title, options, "no_handler");
|
|
return;
|
|
}
|
|
public void viewBallot(obj_id owner, obj_id terminal) throws InterruptedException
|
|
{
|
|
String ballotData = getBallotViewData(terminal);
|
|
sui.msgbox(terminal, owner, ballotData, sui.OK_ONLY, getString(SID_VIEW_BALLOT), "noHandlerNeeded");
|
|
return;
|
|
}
|
|
public String getBallotViewData(obj_id terminal) throws InterruptedException
|
|
{
|
|
String title = getStringObjVar(terminal, VAR_BALLOT_TITLE);
|
|
String issue = getStringObjVar(terminal, VAR_BALLOT_TEXT);
|
|
String[] items = getStringArrayObjVar(terminal, VAR_BALLOT_OPTIONS);
|
|
String resultSet = new String();
|
|
resultSet += "Title: " + getStringObjVar(terminal, VAR_BALLOT_TITLE) + "\n";
|
|
resultSet += "Issue: " + issue + "\n\n";
|
|
resultSet += "Options: " + "\n";
|
|
if (items != null)
|
|
{
|
|
for (int i = 0; i < items.length; ++i)
|
|
{
|
|
int count = i + 1;
|
|
resultSet += count + ". " + items[i] + "\n";
|
|
}
|
|
}
|
|
return resultSet;
|
|
}
|
|
public void editBallotTitle(obj_id owner, obj_id terminal) throws InterruptedException
|
|
{
|
|
if ((getStringObjVar(terminal, VAR_BALLOT_STATE_TEXT)).equals(getString(SID_OPEN_STATE_TEXT)))
|
|
{
|
|
sendSystemMessage(owner, SID_MUST_STOP_VOTE_MSG);
|
|
return;
|
|
}
|
|
String ballot_text = getString(SID_CONFIG_BALLOT_TITLE);
|
|
int pid = sui.inputbox(terminal, owner, ballot_text, sui.OK_CANCEL, getString(SID_EDIT_BALLOT_TITLE), sui.INPUT_NORMAL, null, "editTitle");
|
|
}
|
|
public void editBallotText(obj_id owner, obj_id terminal) throws InterruptedException
|
|
{
|
|
if ((getStringObjVar(terminal, VAR_BALLOT_STATE_TEXT)).equals(getString(SID_OPEN_STATE_TEXT)))
|
|
{
|
|
sendSystemMessage(owner, SID_MUST_STOP_VOTE_MSG);
|
|
return;
|
|
}
|
|
String ballot_text = getString(SID_CONFIG_BALLOT_TEXT);
|
|
int pid = sui.inputbox(terminal, owner, ballot_text, sui.OK_CANCEL, getString(SID_EDIT_BALLOT_TEXT), sui.INPUT_NORMAL, null, "editText");
|
|
}
|
|
public void startVote(obj_id player, obj_id terminal) throws InterruptedException
|
|
{
|
|
setObjVar(terminal, VAR_BALLOT_STATE_TEXT, getString(SID_OPEN_STATE_TEXT));
|
|
setObjVar(terminal, VAR_TOTAL_VOTES, 0);
|
|
sendSystemMessage(player, SID_START_VOTE_MSG);
|
|
String[] items = getStringArrayObjVar(terminal, VAR_BALLOT_OPTIONS);
|
|
int[] voteCounts = new int[items.length];
|
|
for (int i = 0; i < items.length; ++i)
|
|
{
|
|
voteCounts[i] = 0;
|
|
}
|
|
if (voteCounts.length > 0)
|
|
{
|
|
setObjVar(terminal, VAR_VOTE_TALLY, voteCounts);
|
|
}
|
|
}
|
|
public void stopVote(obj_id player, obj_id terminal) throws InterruptedException
|
|
{
|
|
setObjVar(terminal, VAR_BALLOT_STATE_TEXT, getString(SID_CLOSED_STATE_TEXT));
|
|
sendSystemMessage(player, SID_STOP_VOTE_MSG);
|
|
logResults(player, terminal);
|
|
}
|
|
public void logResults(obj_id player, obj_id terminal) throws InterruptedException
|
|
{
|
|
removeLogResults(player, terminal, false);
|
|
String issue = getStringObjVar(terminal, VAR_BALLOT_TEXT);
|
|
String[] items = getStringArrayObjVar(terminal, VAR_BALLOT_OPTIONS);
|
|
int[] votes = getIntArrayObjVar(terminal, VAR_VOTE_TALLY);
|
|
String resultSet = getStringObjVar(terminal, VAR_BALLOT_RESULTS);
|
|
if (resultSet.equals(getString(SID_DEFAULT_BALLOT_RESULTS)))
|
|
{
|
|
resultSet = new String();
|
|
}
|
|
resultSet += "Title: " + getStringObjVar(terminal, VAR_BALLOT_TITLE) + "\n";
|
|
resultSet += "Issue: " + issue + "\n\n";
|
|
resultSet += "Options: " + "\n";
|
|
int totalVotes = getIntObjVar(terminal, VAR_TOTAL_VOTES);
|
|
float percentValue = 0.0f;
|
|
for (int i = 0; i < items.length; ++i)
|
|
{
|
|
if (totalVotes != 0)
|
|
{
|
|
if (votes[i] == totalVotes)
|
|
{
|
|
percentValue = 100;
|
|
}
|
|
else
|
|
{
|
|
percentValue = 100 * ((float)votes[i] / totalVotes);
|
|
}
|
|
}
|
|
int count = i + 1;
|
|
if (votes[i] == 1)
|
|
{
|
|
resultSet += count + ". " + items[i] + "\n" + votes[i] + " vote = " + percentValue + "%\n\n";
|
|
}
|
|
else
|
|
{
|
|
resultSet += count + ". " + items[i] + "\n" + votes[i] + " votes = " + percentValue + "%\n\n";
|
|
}
|
|
}
|
|
resultSet += "\n\n";
|
|
setObjVar(terminal, VAR_BALLOT_RESULTS, resultSet);
|
|
dictionary params = new dictionary();
|
|
params.put("owner", player);
|
|
messageTo(terminal, "sendPersistantResultsMessage", params, 0, true);
|
|
setObjVar(terminal, VAR_BALLOT_TEXT, getString(SID_DEFAULT_BALLOT_TEXT));
|
|
setObjVar(terminal, VAR_BALLOT_TITLE, getString(SID_DEFAULT_BALLOT_TITLE));
|
|
setObjVar(terminal, VAR_BALLOT_OPTIONS, DEFAULT_BALLOT_OPTIONS);
|
|
setObjVar(terminal, VAR_PARTICIPANTS, DEFAULT_PARTICIPANTS);
|
|
setObjVar(terminal, VAR_IS_SECRET_MSG, false);
|
|
}
|
|
public void removeLogResults(obj_id owner, obj_id terminal, boolean displayMessage) throws InterruptedException
|
|
{
|
|
setObjVar(terminal, VAR_BALLOT_RESULTS, getString(SID_DEFAULT_BALLOT_RESULTS));
|
|
if (displayMessage)
|
|
{
|
|
sendSystemMessage(owner, SID_CLEAR_MSG);
|
|
}
|
|
}
|
|
public void vote(obj_id player, obj_id terminal) throws InterruptedException
|
|
{
|
|
xp.grantCraftingXpChance(terminal, player, 40);
|
|
String title = getStringObjVar(terminal, VAR_BALLOT_TITLE);
|
|
String text = getStringObjVar(terminal, VAR_BALLOT_TEXT);
|
|
String[] options = getStringArrayObjVar(terminal, VAR_BALLOT_OPTIONS);
|
|
sui.listbox(terminal, player, text, sui.OK_CANCEL, title, options, "voteTracker");
|
|
}
|
|
public void viewResults(obj_id player, obj_id terminal) throws InterruptedException
|
|
{
|
|
String resultData = new String("error with data");
|
|
if (!getBooleanObjVar(terminal, VAR_IS_SECRET_MSG))
|
|
{
|
|
resultData = getStringObjVar(terminal, VAR_BALLOT_RESULTS);
|
|
}
|
|
else
|
|
{
|
|
resultData = getString(SID_DEFAULT_BALLOT_RESULTS);
|
|
}
|
|
sui.msgbox(terminal, player, resultData, sui.OK_ONLY, getString(SID_RESULTS_TITLE), "noHandlerNeeded");
|
|
}
|
|
public int configureBallot(obj_id self, dictionary params) throws InterruptedException
|
|
{
|
|
if (params == null)
|
|
{
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
String button = sui.getButtonPressed(params);
|
|
if (!button.equals(sui.OK))
|
|
{
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
obj_id player = sui.getPlayerId(params);
|
|
int item = sui.getListboxSelectedRow(params);
|
|
String buttonPressed = sui.getButtonPressed(params);
|
|
String[] selectionOptions = getStringArrayObjVar(self, VAR_EDIT_OPTIONS);
|
|
int optionCount = selectionOptions.length;
|
|
if (item == 0)
|
|
{
|
|
editBallotTitle(player, self);
|
|
}
|
|
else if (item == 1)
|
|
{
|
|
editBallotText(player, self);
|
|
}
|
|
else if (item == 2)
|
|
{
|
|
addSelectionItem(player, self);
|
|
}
|
|
else if (item == 3)
|
|
{
|
|
removeSelectionItem(player, self);
|
|
}
|
|
else if (item == 4)
|
|
{
|
|
startVote(player, self);
|
|
}
|
|
else if (item == 5)
|
|
{
|
|
makeResultsSecret(player, self);
|
|
}
|
|
else if (item == 6)
|
|
{
|
|
makeResultsPublic(player, self);
|
|
}
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
public int editText(obj_id self, dictionary params) throws InterruptedException
|
|
{
|
|
if (params == null)
|
|
{
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
String ballotText = sui.getInputBoxText(params);
|
|
String buttonPressed = sui.getButtonPressed(params);
|
|
if (ballotText.length() > BALLOT_TEXT_MAX_LENGTH)
|
|
{
|
|
obj_id owner = getObjIdObjVar(self, VAR_BALLOT_BOX_OWNER);
|
|
sendSystemMessage(owner, SID_TEXT_TOO_LARGE);
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
if (ballotText != null && ballotText.length() != 0 && buttonPressed.equals(sui.OK))
|
|
{
|
|
setObjVar(self, VAR_BALLOT_TEXT, ballotText);
|
|
}
|
|
obj_id player = sui.getPlayerId(params);
|
|
editBallot(player, self);
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
public int editTitle(obj_id self, dictionary params) throws InterruptedException
|
|
{
|
|
if (params == null)
|
|
{
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
String ballotTitle = sui.getInputBoxText(params);
|
|
String buttonPressed = sui.getButtonPressed(params);
|
|
if (ballotTitle.length() > BALLOT_TITLE_MAX_LENGTH)
|
|
{
|
|
obj_id owner = getObjIdObjVar(self, VAR_BALLOT_BOX_OWNER);
|
|
sendSystemMessage(owner, SID_TITLE_TOO_LARGE);
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
if (ballotTitle != null && ballotTitle.length() != 0 && buttonPressed.equals(sui.OK))
|
|
{
|
|
setObjVar(self, VAR_BALLOT_TITLE, ballotTitle);
|
|
}
|
|
obj_id player = sui.getPlayerId(params);
|
|
editBallot(player, self);
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
public int voteTracker(obj_id self, dictionary params) throws InterruptedException
|
|
{
|
|
if (params == null)
|
|
{
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
int listItem = sui.getListboxSelectedRow(params);
|
|
if (listItem == -1)
|
|
{
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
String button = sui.getButtonPressed(params);
|
|
if (!button.equals(sui.OK))
|
|
{
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
int[] voteCounts = getIntArrayObjVar(self, VAR_VOTE_TALLY);
|
|
int value = voteCounts[listItem];
|
|
voteCounts[listItem] = ++value;
|
|
if (voteCounts.length > 0)
|
|
{
|
|
setObjVar(self, VAR_VOTE_TALLY, voteCounts);
|
|
}
|
|
Vector participants = getResizeableObjIdArrayObjVar(self, VAR_PARTICIPANTS);
|
|
participants = utils.addElement(participants, sui.getPlayerId(params));
|
|
if (participants.size() > 0)
|
|
{
|
|
setObjVar(self, VAR_PARTICIPANTS, participants);
|
|
}
|
|
int voteCount = getIntObjVar(self, VAR_TOTAL_VOTES);
|
|
setObjVar(self, VAR_TOTAL_VOTES, ++voteCount);
|
|
obj_id player = sui.getPlayerId(params);
|
|
sendSystemMessage(player, SID_VOTE_LOGGED_MSG);
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
public int addItem(obj_id self, dictionary params) throws InterruptedException
|
|
{
|
|
if (params == null)
|
|
{
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
String itemToAdd = sui.getInputBoxText(params);
|
|
String buttonPressed = sui.getButtonPressed(params);
|
|
if (itemToAdd.length() > BALLOT_ITEM_MAX_LENGTH)
|
|
{
|
|
obj_id owner = getObjIdObjVar(self, VAR_BALLOT_BOX_OWNER);
|
|
sendSystemMessage(owner, SID_ITEM_TOO_LARGE);
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
if (itemToAdd != null && itemToAdd.length() != 0 && buttonPressed.equals(sui.OK))
|
|
{
|
|
Vector options = getResizeableStringArrayObjVar(self, VAR_BALLOT_OPTIONS);
|
|
if (((String)options.get(0)).equals(getString(SID_SAMPLE_ONE)))
|
|
{
|
|
options.clear();
|
|
}
|
|
if (options.size() > BALLOT_ITEM_MAX_COUNT)
|
|
{
|
|
obj_id owner = getObjIdObjVar(self, VAR_BALLOT_BOX_OWNER);
|
|
sendSystemMessage(owner, SID_ITEMS_TOO_MANY);
|
|
obj_id player = sui.getPlayerId(params);
|
|
editBallot(player, self);
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
options = utils.addElement(options, itemToAdd);
|
|
if (options.size() > 0)
|
|
{
|
|
setObjVar(self, VAR_BALLOT_OPTIONS, options);
|
|
}
|
|
else
|
|
{
|
|
setObjVar(self, VAR_BALLOT_OPTIONS, DEFAULT_BALLOT_OPTIONS);
|
|
}
|
|
}
|
|
obj_id player = sui.getPlayerId(params);
|
|
editBallot(player, self);
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
public int sendPersistantResultsMessage(obj_id self, dictionary params) throws InterruptedException
|
|
{
|
|
String resultSet = getStringObjVar(self, VAR_BALLOT_RESULTS);
|
|
if (!getBooleanObjVar(self, VAR_IS_SECRET_MSG))
|
|
{
|
|
obj_id[] participants = getObjIdArrayObjVar(self, VAR_PARTICIPANTS);
|
|
for (obj_id participant : participants) {
|
|
chatSendPersistentMessage(participant, "@" + SID_CHAT_TITLE.toString(), resultSet, null);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
obj_id owner = params.getObjId("owner");
|
|
chatSendPersistentMessage(owner, "@" + SID_CHAT_TITLE.toString(), resultSet, null);
|
|
}
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
public int removeItem(obj_id self, dictionary params) throws InterruptedException
|
|
{
|
|
int listItem = sui.getListboxSelectedRow(params);
|
|
obj_id player = sui.getPlayerId(params);
|
|
if (listItem == -1)
|
|
{
|
|
editBallot(player, self);
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
Vector items = getResizeableStringArrayObjVar(self, VAR_BALLOT_OPTIONS);
|
|
items = utils.removeElementAt(items, listItem);
|
|
if (items.size() == 0)
|
|
{
|
|
setObjVar(self, VAR_BALLOT_OPTIONS, DEFAULT_BALLOT_OPTIONS);
|
|
}
|
|
else
|
|
{
|
|
setObjVar(self, VAR_BALLOT_OPTIONS, items);
|
|
}
|
|
editBallot(player, self);
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
}
|