/***** INCLUDES ********************************************************/ include library.utils; include library.prose; include library.marriage; include library.static_item; /***** CONSTANTS *******************************************************/ const string_id SID_ALREADY_PROPOSING = new string_id("unity", "already_proposing"); /***** TRIGGERS ********************************************************/ trigger OnObjectMenuRequest(obj_id player, menu_info mi) { obj_id inv = utils.getInventoryContainer(player); if ( isIdValid(inv) && utils.isNestedWithin(self, inv) ) { if(static_item.isStaticItem(self)) if(!static_item.canEquip(player, self) ) return SCRIPT_CONTINUE; if ( !marriage.isMarried(player) ) { obj_id target = getIntendedTarget(player); if ( isIdValid(target) ) mi.addRootMenu (menu_info_types.SERVER_MENU1, marriage.MNU_PROPOSE); } } return SCRIPT_CONTINUE; } trigger OnObjectMenuSelect(obj_id player, int item) { if ( item == menu_info_types.SERVER_MENU1 ) //propose { obj_id inv = utils.getInventoryContainer(player); if ( isIdValid(inv) && utils.isNestedWithin(self, inv) ) { obj_id target = getIntendedTarget(player); if ( !isIdValid(target) || (target == player) ) { sendSystemMessage(player, marriage.SID_BAD_TARGET); return SCRIPT_CONTINUE; } if ( utils.hasScriptVar(player, marriage.VAR_PROPOSAL_NAME) ) { string targetName = utils.getStringScriptVar(player, marriage.VAR_PROPOSAL_NAME); if ( targetName != null && !targetName.equals("") ) { prose_package ppAlreadyProposing = prose.getPackage(SID_ALREADY_PROPOSING); prose.setTT(ppAlreadyProposing, target); sendSystemMessageProse(player, ppAlreadyProposing); return SCRIPT_CONTINUE; } } if ( marriage.isMarried(player) ) { string spouseName = getStringObjVar(player, marriage.VAR_SPOUSE_NAME); if ( spouseName != null && !spouseName.equals("") ) { prose_package ppAlreadyMarried = prose.getPackage(marriage.PROSE_ALREADY_MARRIED, spouseName); sendSystemMessageProse(player, ppAlreadyMarried); return SCRIPT_CONTINUE; } } marriage.propose(player, target, self); } } return SCRIPT_CONTINUE; }