import java.awt.*;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.io.*;
import javax.swing.*;
public class MysteryBoxHandler
extends Object {
public function MysteryBoxHandler()
{
return;
}// end function
public static function launchMysteryFeedDialogue
(param1
:OwnedItem, param2
:OwnedItem, param3
:String = "Mystery", param4
:Array = null) : void {
var _loc_5:* = getFeedPublishImage(param1.name, param2);
var _loc_6
:* = new Array(); new Array().
push(param1.
translatedName, param2.
translatedName); if (_loc_6 != null)
{
ArrayUtils.append(_loc_6, param4);
}
var _loc_7:* = FeedItem.create();
FeedItem.create().feedNewsParams = _loc_6;
_loc_7.feedCaptionParams = _loc_6;
_loc_7.setup(param3, FeedItem.FEED_MYSTERIOUS_ITEM, _loc_5);
var _loc_8:* = param2.createAutoSizeIcon();
ShareDialogue.create(_loc_8, PFText.getTextByArray(param3 + "Dialogue", _loc_6), _loc_7);
return;
}// end functionrandom1
public static function publishMysteryFeed
(param1
:String, param2
:OwnedItem
) : void {
var _loc_3:* = getFeedPublishImage(param1, param2);
var _loc_4:* = FeedItem.create();
FeedItem.create().feedNewsParams.push(param1, param2.name);
_loc_4.feedCaptionParams.push(param1, param2.name);
_loc_4.setup("Mystery", FeedItem.FEED_MYSTERIOUS_ITEM, _loc_3);
_loc_4.publishFeed();
return;
}// end function
private static function getFeedPublishImage
(param1
:String, param2
:OwnedItem
) : Array {
var _loc_3
:* = new Array(); if (param2.hasProperty("feed"))
{
_loc_3.push(param2.name);
}
else
{
_loc_3.push(param1);
}
return _loc_3;
}// end function
{
var _loc_3
:* = ArrayPF.
getMapping(Mystery.
BOX_NAME_MAPPING, param2
) as
Array; var _loc_4:uint = 0;
while (_loc_4 < _loc_3.length)
{
_loc_5 = _loc_3[_loc_4];
if (_loc_5[0] == param1)
{
return true;
}
_loc_4 = _loc_4 + 1;
}
return false;
}// end function
public static function getAllTreasuresBelongsTo
(param1
:String) : Array {
var _loc_6:ItemDescription = null;
var _loc_2
:* = new Array(); var _loc_3
:* = ArrayPF.
getMapping(Mystery.
BOX_NAME_MAPPING, param1
) as
Array; var _loc_4:uint = 0;
while (_loc_4 < _loc_3.length)
{
_loc_5 = _loc_3[_loc_4];
_loc_6 = ItemDatabase.instance.findItemByName(_loc_5[0]);
_loc_7 = _loc_5[1] != null ? (_loc_5[1]) : (false);
if (_loc_7)
{
_loc_2.unshift([_loc_6, _loc_7]);
}
else if (!_loc_6.isGagBase())
{
_loc_2.push([_loc_6, _loc_7]);
}
_loc_4 = _loc_4 + 1;
}
return _loc_2;
}// end function
public static function getNewestMysteryBox
() : Array {
var _loc_1
:* = new Date(2000
); for each (_loc_3 in Mystery.BOX_INFO_MAPPING)
{
_loc_4
= _loc_3
[Mystery.
BOX_START] != null ? (Util.
getDateFromXML(_loc_3
[Mystery.
BOX_START])) : (null); _loc_5
= _loc_3
[Mystery.
BOX_END] != null ? (Util.
getDateFromXML(_loc_3
[Mystery.
BOX_END])) : (null); _loc_6 = isAvailableMysteryBox(_loc_4, _loc_5);
if (_loc_6)
{
if (_loc_4 > _loc_1)
{
_loc_1 = _loc_4;
_loc_2 = _loc_3;
}
}
}
return _loc_2;
}// end function
public static function getMysteryBoxesForGame
(param1
:String = null) : Array {
var _loc_8:int = 0;
var _loc_9:ItemDescription = null;
var _loc_10:ItemDescription = null;
var _loc_15
:Array = null; var _loc_2
:* = new Array(); var _loc_3
:* = new Array(); var _loc_4
:* = new Array(); var _loc_5
:* = new Array(); for each (_loc_7 in Mystery.BOX_INFO_MAPPING)
{
_loc_9 = ItemDatabase.instance.findItemByName(_loc_7[Mystery.BOX_NAME]);
_loc_10 = null;
_loc_11 = _loc_7[Mystery.BOX_REWARD];
if (_loc_11 != null && _loc_11 != "")
{
_loc_10 = ItemDatabase.instance.findItemByName(_loc_11);
}
_loc_12
= _loc_7
[Mystery.
BOX_START] != null ? (Util.
getDateFromXML(_loc_7
[Mystery.
BOX_START])) : (null); _loc_13
= _loc_7
[Mystery.
BOX_END] != null ? (Util.
getDateFromXML(_loc_7
[Mystery.
BOX_END])) : (null); _loc_14 = isAvailableMysteryBox(_loc_12, _loc_13);
if (_loc_14 || PetsGame.playerPet.profile.getOwnedItemByName(_loc_9.name))
{
_loc_15 = [_loc_9, _loc_10, _loc_14];
if (param1 == _loc_9.name)
{
_loc_6 = _loc_15;
}
if (param1 == _loc_9.name || isNewMysteryBox(_loc_12))
{
if (_loc_9.isCashItem())
{
_loc_3.unshift(_loc_15);
}
else
{
_loc_3.push(_loc_15);
}
continue;
}
if (_loc_9.isCashItem())
{
_loc_5.push(_loc_15);
continue;
}
_loc_4.push(_loc_15);
}
}
_loc_2 = _loc_3.slice();
_loc_8 = _loc_5.length - 1;
while (_loc_8 >= 0)
{
_loc_2.push(_loc_5[_loc_8]);
_loc_8 = _loc_8 - 1;
}
_loc_8 = 0;
while (_loc_8 < 3)
{
_loc_2.push(_loc_4[_loc_8]);
_loc_8++;
}
_loc_8 = _loc_4.length - 1;
while (_loc_8 >= 3)
{
_loc_2.push(_loc_4[_loc_8]);
_loc_8 = _loc_8 - 1;
}
return _loc_2;
}// end function
private static function isNewMysteryBox
(param1
:Date) : Boolean {
if (param1 == null)
{
return false;
}
_loc_2 = TimeHandler.serverTime.getTime() - param1.getTime();
return _loc_2 > 0 && _loc_2 < DateUtils.MILLISECONDS_IN_A_WEEK;
}// end function
public static function isNewMysteryBoxFromString
(param1
:String) : Boolean {
return param1
== "" ? (false) : (isNewMysteryBox
(Util.
getDateFromXML(param1
))); }// end function
private static function isAvailableMysteryBox
(param1
:Date, param2
:Date) : Boolean {
var _loc_3:* = TimeHandler.serverTime.getTime();
return (param1 == null || _loc_3 >= param1.getTime()) && (param2 == null || _loc_3 <= param2.getTime());
}// end function
public static function getRandomMysteryBoxForGame() : ItemDescription
{
var _loc_1:* = getMysteryBoxesForGame();
return ArrayUtils.getRandomEntry(_loc_1)[0];
}// end function
public static function getMysteryOffers
(param1
:String) : Array {
return ArrayPF.
getMapping(Mystery.
BOX_INFO_MAPPING, param1, Mystery.
BOX_OFFERS) as
Array; }// end function
public static function getContentsForOldOrNewMysteryBox
(param1
:String) : Array {
var _loc_2
:* = ArrayPF.
getMapping(Mystery.
BOX_NAME_MAPPING, param1
) as
Array; var _loc_3
:* = new Array(); for each (_loc_4 in _loc_2)
{
_loc_3.push(ItemDatabase.instance.findItemByName(_loc_4));
}
return _loc_3;
}// end function
public static function getPossibleMysteryOutcomes
(param1
:String) : Vector.
<ItemDescription
> {
var _loc_2
:* = ArrayPF.
getMapping(Mystery.
BOX_NAME_MAPPING, param1
) as
Array; var _loc_3
:* = new Vector.
<ItemDescription
>; if (_loc_2 == null)
{
return _loc_3;
}
var _loc_4:uint = 0;
while (_loc_4 < _loc_2.length)
{
_loc_5 = _loc_2[_loc_4];
_loc_3.push(ItemDatabase.instance.findItemByName(_loc_5[0]));
_loc_4 = _loc_4 + 1;
}
return _loc_3;
}// end function
public static function getRandomMysteryBoxItem
(param1
:String) : ItemDescription
{
var _loc_9:ItemDescription = null;
var _loc_11:uint = 0;
var _loc_2
:* = ArrayPF.
getMapping(Mystery.
BOX_NAME_MAPPING, param1
) as
Array; if (_loc_2 == null)
{
Debug.warning("Mystery box \"" + param1 + "\" has no content configured in mystery.xml! Please add it.");
return null;
}
var _loc_3
:* = new Array(); var _loc_4
:* = new Array(); var _loc_5:uint = 0;
var _loc_6:uint = 0;
while (_loc_6 < _loc_2.length)
{
_loc_8 = _loc_2[_loc_6];
_loc_9 = ItemDatabase.instance.findItemByName(_loc_8[0]);
if (Debug.DEBUG)
{
Debug.assert(_loc_9.rarity > 0, "Item with rarity 0 specified in payout table for \'" + param1 + "\': " + _loc_9.name);
}
_loc_10 = _loc_9.rarity > 0;
if (_loc_10)
{
_loc_11 = ProtectedInt(ArrayPF.getMapping(Balancing.RARITY_WEIGHT_MAPPING, _loc_9.rarity)).value;
_loc_5 = _loc_5 + _loc_11;
_loc_3.push(_loc_9);
_loc_4.push(_loc_11);
}
_loc_6 = _loc_6 + 1;
}
var _loc_7:* = MathPF.rnd(0, (_loc_5 + 1));
_loc_5 = 0;
_loc_6 = 0;
while (_loc_6 < _loc_3.length)
{
_loc_11 = _loc_4[_loc_6] as uint;
_loc_5 = _loc_5 + _loc_11;
if (_loc_7 <= _loc_5)
{
return _loc_3[_loc_6];
}
_loc_6 = _loc_6 + 1;
}
Debug.warning("No item could be randomised for \'" + param1 + "\'");
return null;
}// end function
}
}