Пример #1
0
        public async Task <IHttpActionResult> RevealProgram(RevealProgramBindingModel revealRequest)
        {
            ClaimsPrincipal principal = this.User as ClaimsPrincipal;

            if (null == principal)
            {
                return(StatusCode(System.Net.HttpStatusCode.Unauthorized));
            }

            string caller = principal.Identities.First().GetUserId();

            bool response = await Task.Run(() =>
            {
                return(MarketManager.RevealProgramFor(caller, revealRequest.ProgramName));
            });

            if (response)
            {
                return(StatusCode(System.Net.HttpStatusCode.Created));
            }
            else
            {
                return(StatusCode(System.Net.HttpStatusCode.InternalServerError));
            }
        }
Пример #2
0
        public async Task <IHttpActionResult> Resources()
        {
            ClaimsPrincipal principal = this.User as ClaimsPrincipal;

            if (null == principal)
            {
                return(StatusCode(System.Net.HttpStatusCode.Unauthorized));
            }
            var roles = (from c in principal.Claims where c.Type.ToLower().Contains("role") select c.Value).ToList();

            ModelFactory.UserResourceResponse response = await Task.Run(() =>
            {
                ModelFactory.UserResourceResponse innerResponse = new ModelFactory.UserResourceResponse();
                if (roles.Contains("Affiliate"))
                {
                    innerResponse.programs         = MarketManager.GetPrograms();
                    innerResponse.unlockedPrograms = MarketManager.UnlockedPrograms(principal.Identities.First().GetUserId());
                }
                if (roles.Contains("Vendor"))
                {
                    innerResponse.affiliates         = MarketManager.GetAffiliates();
                    innerResponse.unlockedAffiliates = MarketManager.UnlockedAffiliates(principal.Identities.First().GetUserId());
                }
                return(innerResponse);
            });

            return(Json <ModelFactory.UserResourceResponse>(response));
        }
Пример #3
0
 public static float CommitTransaction(Customer cust, GameType game)
 {
     if (!instance.mainMenuMode)
     {
         if (Logistics.GetStock(game) > 0)
         {
             //Success
             cust.CommitTransaction(true);
             float revenue = MarketManager.GetSalePrice(game);
             AdjustCash(revenue);
             EndDayManager.AddRevenue(game, revenue);
             Logistics.ExpendGame(game);
             return(revenue);
         }
         else
         {
             //Failure
             cust.CommitTransaction(false);
             return(0);
         }
     }
     else
     {
         cust.CommitTransaction(true);
         return(0);
     }
 }
Пример #4
0
 private void Awake()
 {
     if (!instance)
     {
         instance = this;
     }
 }
Пример #5
0
    void PopulateRevenue()
    {
        float total = 0;

        foreach (var rev in gameRevenues)
        {
            total += rev;
        }
        for (int i = 0; i < financeReportRows.Length; i++)
        {
            if (i == 0)
            {
                financeReportRows[i].label.text = "Total Revenues";
                financeReportRows[i].value.text = string.Format("${0:N0}", total);
            }
            else if (MarketManager.IsGameAvailable((GameType)(i - 1)) && GameManager.IsDepartmentExists(Departments.Finance))
            {
                financeReportRows[i].label.text = string.Format("- {0}", MarketManager.GetGameNames((GameType)(i - 1)));
                financeReportRows[i].value.text = string.Format("({1}) ${0:N0}", gameRevenues[i - 1], gameSaleCount[i - 1]);
            }
            else
            {
                financeReportRows[i].label.text = "";
                financeReportRows[i].value.text = "";
            }
        }

        if (!GameManager.IsDepartmentExists(Departments.Finance))
        {
            financeDeptMissingObject.SetActive(true);
        }

        expenseByDept.SetActive(false);
    }
Пример #6
0
    public static bool IsHighPriority2Weight(int commodityId1, int commodityId2)
    {
        ShangPinKu commodityPool  = MarketManager.GetCommodityPool(commodityId1);
        ShangPinKu commodityPool2 = MarketManager.GetCommodityPool(commodityId2);

        return(commodityPool != null && commodityPool2 != null && commodityPool.weight > commodityPool2.weight);
    }
Пример #7
0
 private void Awake()
 {
     if (instance == null)
     {
         instance = this;
     }
 }
Пример #8
0
        private static async Task TradeReader(ApiTrader api, MarketManager trader)
        {
            while (true)
            {
                try
                {
                    var tradeStream = api.Client.PrivateApi.GetTradeUpdates(new Empty());

                    while (await tradeStream.ResponseStream.MoveNext())
                    {
                        foreach (var trade in tradeStream.ResponseStream.Current.Trades)
                        {
                            Console.WriteLine(
                                $"TRADE: orderId: {trade.OrderId}, size: {trade.BaseVolume}, role: {trade.Role}");
                            await trader.HandleTrade(trade.OrderId, decimal.Parse(trade.BaseVolume));
                        }

                        await trader.PlaceToMarketAsync();
                    }

                    tradeStream.Dispose();
                }
                catch (Exception ex)
                {
                    Console.WriteLine("Error on stream read:");
                    Console.WriteLine(ex);
                }
            }
        }
Пример #9
0
        /// <summary>
        /// Starts the <see cref="CoinBot"/>.
        /// </summary>
        /// <param name="provider">The <see cref="IServiceProvider"/>.</param>
        /// <returns></returns>
        private static async Task Run(IServiceProvider provider)
        {
            //set up a task completion source so we can quit on CTRL+C
            TaskCompletionSource <bool> exitSource = new TaskCompletionSource <bool>();

            Console.CancelKeyPress += (sender, eventArgs) =>
            {
                eventArgs.Cancel = true;
                exitSource.SetResult(true);
            };

            CurrencyManager coinManager   = provider.GetRequiredService <CurrencyManager>();
            MarketManager   marketManager = provider.GetRequiredService <MarketManager>();
            DiscordBot      bot           = provider.GetRequiredService <DiscordBot>();

            // Initialize the bot
            DiscordBotSettings botConfig = provider.GetRequiredService <IOptions <DiscordBotSettings> >().Value;
            await bot.LoginAsync(TokenType.Bot, botConfig.Token);

            // Start the bot & coinSource
            await bot.StartAsync();

            coinManager.Start();
            marketManager.Start();

            // Keep the application alive until the exitSource task is completed.
            await exitSource.Task;

            // Stop the bot & coinSource
            await bot.LogoutAsync();

            coinManager.Stop();
            marketManager.Stop();
        }
Пример #10
0
    public void ChooseAction()
    {
        Visits++;
        agent.speed = origSpd;
        GetComponent <MeshRenderer>().material.color = Color.white;
        finished = false;
        startPos = transform.position;

        float[] weight = new float[] {
            GameManager.IsDepartmentFunctional(Departments.Cashier) ? actionWeight[0] : 0,
            GameManager.IsDepartmentFunctional(Departments.CustService) ? actionWeight[1] : 0,
            actionWeight[2]
        };

        if (MathRand.WeightedPick(weight) == 0)
        {
            GameDemand = (GameType)MarketManager.GetDemands();
            StartCoroutine(GoShopping());
            //Shopping
        }
        else if (MathRand.WeightedPick(weight) == 1)
        {
            StartCoroutine(GoWander());
            //Wander
        }
        else if (MathRand.WeightedPick(weight) == 2 && GameManager.IsDepartmentFunctional(Departments.CustService))
        {
            StartCoroutine(GoComplain()); //Complain
        }
        else
        {
            ChooseAction();
        }
    }
Пример #11
0
    void UpdatePricesUI(int id)
    {
        float  priceMod = 1 + pricesRows[id].priceSlider.value / 10;
        string format   = pricesRows[id].priceSlider.value == 0 ? "{0:N0}% (${1:N0})" : "<color=yellow>{0:N0}%</color> (${1:N0})";

        pricesRows[id].priceText.text = string.Format(format, priceMod * 100, MarketManager.GetBaseSalePrice(id) * priceMod);
        MarketManager.SetSalePriceMod(id, priceMod);
    }
Пример #12
0
 private void UpdateAllRestockUI()
 {
     for (int i = 0; i < restockRows.Length; i++)
     {
         if (MarketManager.IsGameAvailable(i))
         {
             UpdateRestockUI(i);
         }
     }
 }
Пример #13
0
        public InterpretedCoinInfo(Currency currency, MarketManager marketManager, Currency?usd, Currency?eth, Currency?btc)
        {
            this.Id     = currency.Symbol;
            this.Symbol = currency.Symbol;
            this.Name   = currency.Name;

            this.PriceUsd = GetPriceFromMarkets(currency: currency, marketManager: marketManager, quoteCurrency: usd);
            this.PriceEth = GetPriceFromMarkets(currency: currency, marketManager: marketManager, quoteCurrency: eth);
            this.PriceBtc = GetPriceFromMarkets(currency: currency, marketManager: marketManager, quoteCurrency: btc);
        }
Пример #14
0
 public BaseApiController()
 {
     DBContext      = new JVContext();
     UserExtManager = new UserExtensionManager(DBContext);
     RatingManager  = new UserRatingManager(DBContext);
     LookupManager  = new LookupDataManager(DBContext);
     MarketManager  = new MarketManager(DBContext, RatingManager);
     Configuration  = new HttpConfiguration();
     Configuration.Services.Add(typeof(IExceptionLogger), new NLogExceptionLogger());
 }
Пример #15
0
 private void UpdateAllPricesUI()
 {
     for (int i = 0; i < pricesRows.Length; i++)
     {
         if (MarketManager.IsGameAvailable(i))
         {
             UpdatePricesUI(i);
         }
     }
 }
        public MainWindow()
        {
            InitializeComponent();
            instance = this;

            Logger.MessageLogged += Logger_MessageLogged;

            market = MarketManager.Instance;
            Main.FinishedLoading += Main_FinishedLoading;
        }
Пример #17
0
 private void Awake()
 {
     if (Instance == null)
     {
         Instance = this;
     }
     else if (Instance != this)
     {
         Destroy(this);
     }
 }
Пример #18
0
 void Awake()
 {
     if (instance == null)
     {
         instance = this;
     }
     else if (instance != this)
     {
         Destroy(gameObject);
     }
 }
Пример #19
0
 void Start()
 {
     if (instance == null)
     {
         instance = this;
     }
     else
     {
         Destroy(this.gameObject);
     }
 }
Пример #20
0
    public void OnLoanCommit()
    {
        LoanData data = MarketManager.GetLoanData(toloan);

        GameManager.AdjustCash(data.amount);
        loanButton.interactable = false;
        MarketManager.TakeLoan(toloan);
        //Add expense
        AddExpense(ExpenseType.Loan, Departments.Start, data.amount * (1 + data.interest / 100) / data.term);
        instance.moneyText.text = string.Format("${0:N0}", GameManager.Cash);
        PopulateLoans();
    }
Пример #21
0
        private string ValidateCreateModel(CreateUserBindingModel createModel, Role role)
        {
            string msg = String.Empty;

            if (role.Equals(Role.Affiliate))
            {
                int category;
                if (!int.TryParse(createModel.UserCategory, out category))
                {
                    msg = "That is not a valid user category";
                    ModelState.AddModelError("createUserModel.UserCategory", msg);
                }
            }

            if (role.Equals(Role.Vendor))
            {
                if (String.IsNullOrEmpty(createModel.ProgramDescription))
                {
                    msg = "Please enter a Program Description";
                    ModelState.AddModelError("createUserModel.ProgramDescription", msg);
                }

                if (String.IsNullOrEmpty(createModel.ProgramName))
                {
                    msg = "Please enter a Program Name";
                    ModelState.AddModelError("createUserModel.ProgramName", msg);
                }

                Program program = MarketManager.GetAllPrograms().Where(p => p.Name.ToLower() == createModel.ProgramName.ToLower()).FirstOrDefault();
                if (null != program)
                {
                    msg = "That program name is already taken, please enter something different";
                    ModelState.AddModelError("createUserModel.ProgramName", msg);
                }

                int category;
                if (!int.TryParse(createModel.ProgramCategory, out category))
                {
                    msg = "That is not a valid program category";
                    ModelState.AddModelError("createUserModel.ProgramCategory", msg);
                }


                if (String.IsNullOrEmpty(createModel.ProgramUrl))
                {
                    msg = "Please enter a Program Url";
                    ModelState.AddModelError("createUserModel.ProgramUrl", msg);
                }
            }

            return(msg);
        }
Пример #22
0
 public override void AddRecipes()
 {
     base.AddRecipes();
     if (Loaded)
     {
         return;
     }
     //_messageChecker = new MessageChecker();
     ShowTooltip       = "";
     _packetHandler    = new PacketHandler();
     _sscPacketHandler = new SSCPacketHandler();
     if (!Main.dedServ)
     {
         // 加载资源只有在非服务器端才会执行
         // MethodSwapper.SwapMethods();
         MainPlayerGroup       = new Group("default");
         ToolBarServiceManager = new ToolBarServiceManager();
         ResourceLoader.LoadAll();
         GuiManager        = new GUIManager(this);
         IsLoginClientSide = false;
         ClientUnion       = null;
         if (DEBUGMODE)
         {
             ClientUnion       = new Union("裙中世界");
             ClientUnion.Owner = "我不是裙子";
         }
     }
     else
     {
         // 生成玩家存档,这里用json文件存储玩家信息
         // 顺序一定不能错
         PlayerCollection = new PlayerCollection();
         PlayerDoc        = new PlayersDocument("players.json");
         PlayerDoc.ExtractPlayersData();
         GroupManager = new GroupManager();
         GroupManager.SetGroups();
         UnionManager  = new UnionManager();
         RegionManager = new RegionManager();
         MailManager   = new MailManager();
         // 服务器端生成RSA私钥
         RSACrypto.GenKey();
         ConfigLoader.Load();
         MarketManager  = new MarketManager();
         MatchingSystem = new MatchingSystem();
         AddUnionRegions();
     }
     Loaded = true;
     if (!Main.dedServ)
     {
         GuiManager.SetNPCDefaults();
     }
 }
 private void Start()
 {
     mm              = GameObject.Find("MarketManager").GetComponent <MarketManager>();
     popupgun        = GameObject.Find("PopUpGun");
     popupbody       = GameObject.Find("PopUpBody");
     nameGunText     = popupgun.transform.GetChild(0).GetComponent <Text>();
     damageText      = popupgun.transform.GetChild(1).GetComponent <Text>();
     fireRateText    = popupgun.transform.GetChild(2).GetComponent <Text>();
     bulletSpeedText = popupgun.transform.GetChild(3).GetComponent <Text>();
     nameBodyText    = popupbody.transform.GetChild(0).GetComponent <Text>();
     healthText      = popupbody.transform.GetChild(1).GetComponent <Text>();
     speedText       = popupbody.transform.GetChild(2).GetComponent <Text>();
 }
Пример #24
0
        private static decimal?GetPriceFromMarkets(Currency currency, MarketManager marketManager, Currency?quoteCurrency)
        {
            if (quoteCurrency == null)
            {
                return(null);
            }

            IEnumerable <MarketSummaryDto> markets = marketManager.GetPair(currency1: currency, currency2: quoteCurrency);

            return(markets.Where(predicate: x => x.Last != null)
                   .OrderByDescending(keySelector: x => x.LastUpdated ?? DateTime.MinValue)
                   .FirstOrDefault()
                   ?.Last);
        }
Пример #25
0
    public List <GameObject> InstanceItemsInContentZone(Transform contentZone, MarketManager marketManager, EnumTypeMarketOpen typeMarketOpen)
    {
        var allGameItems  = GetItemsForOpen(typeMarketOpen);
        var gameItemsObjs = new List <GameObject>();

        foreach (var gameItem in allGameItems)
        {
            var itemObject = Object.Instantiate(marketItem, Vector3.zero, Quaternion.identity, contentZone);
            itemObject.GetComponent <ShopItemMarket>().SetItemMarket(gameItem);
            itemObject.GetComponent <ShopItemMarket>().marketBase = marketManager;
            gameItemsObjs.Add(itemObject);
        }
        return(gameItemsObjs);
    }
Пример #26
0
        public AdminWindowViewModel()
        {
            RunList = new ObservableCollection <Run>();

            IsTaskReadOnly   = true;
            IsUserReadOnly   = true;
            IsMarketReadOnly = true;

            SaveTaskCommand   = new SaveTaskCommand(this);
            SaveMarketCommand = new SaveMarketCommand(this);

            ChangeTaskCommand       = new ChangeTaskCommand(this);
            CancelSaveTaskCommand   = new CancelSaveTaskCommand(this);
            ContactDeveloperCommand = new ContactDeveloperCommand(this);
            ResetTaskCommand        = new ResetTaskCommand(this);

            CreateReportCommand = new CreateReportCommand(this);

            CloseCommand    = new CloseWindowCommand();
            MaximizeCommand = new MaximizeWindowCommand();
            MinimizeCommand = new MinimizeWindowCommand();

            CreateUserCommand = new CreateUserCommand(this);
            ChangeUserCommand = new ChangeUserCommand(this);
            SaveUserCommand   = new SaveUserCommand(this);
            CancelUserCommand = new CancelUserCommand(this);
            RemoveUserCommand = new RemoveUserCommand(this);

            TaskIndex   = 0;
            UserIndex   = 0;
            MarketIndex = 0;

            DevList = new List <User>(UserManager.GetUserByGroup(UserGroup.Dev, RunTimeContext.Context.DatabaseContext));

            MarketList = new ObservableCollection <Market>(MarketManager.GetAllMarkets(RunTimeContext.Context.DatabaseContext));
            TaskList   = new ObservableCollection <Task>(TaskManager.GetAllTasks(RunTimeContext.Context.DatabaseContext));
            SetUserList();

            SelectedTask   = TaskList.FirstOrDefault();
            SelectedUser   = UserList.FirstOrDefault();
            SelectedMarket = MarketList.FirstOrDefault();

            StartDate = DateTime.Now.AddMonths(-1);
            EndDate   = DateTime.Now;

            TaskFilter   = TaskList.FirstOrDefault();
            MarketFilter = MarketList.FirstOrDefault();
            DevFilter    = DevList.FirstOrDefault();
        }
Пример #27
0
 void PopulatePrices(bool init = false)
 {
     for (int i = 0; i < pricesRows.Length; i++)
     {
         if (MarketManager.IsGameAvailable(i))
         {
             pricesRows[i].gameName.transform.parent.gameObject.SetActive(true);
             pricesRows[i].gameName.text = string.Format("{0}", MarketManager.GetGameNames((GameType)i));
             UpdatePricesUI(i);
         }
         else
         {
             pricesRows[i].gameName.transform.parent.gameObject.SetActive(false);
         }
     }
 }
Пример #28
0
        private static async Task Pulser(MarketManager trader)
        {
            while (true)
            {
                try
                {
                    await trader.Pulse();
                }
                catch (Exception ex)
                {
                    Console.WriteLine("ERROR: PULSER receve exception");
                    Console.WriteLine(ex);
                }

                await Task.Delay(5000);
            }
        }
Пример #29
0
        static async Task Main(string[] args)
        {
            // connect to API
            var key = Environment.GetEnvironmentVariable("HFT_API_KEY");
            var api = new ApiTrader("https://hft-apiv2-grpc.lykke.com", key);

            // create a bot with BTCUSD pair
            var trader = new MarketManager(api, "BTCUSD");

            // init trading bot: Current Price = 10950, Limit Order size = 0.0001 BTC, Delta(level spread) = 10 USD, count level per side = 15
            trader.ResetMarke(10950, 0.0001m, 10, 15);

            // place Limit Orders
            await trader.PlaceToMarketAsync();

            while (true)
            {
                try
                {
                    // subscribe to trade stream
                    var tradeStream = api.Client.PrivateApi.GetTradeUpdates(new Empty());

                    // wait next trade event
                    while (await tradeStream.ResponseStream.MoveNext())
                    {
                        // handle each trade from event
                        foreach (var trade in tradeStream.ResponseStream.Current.Trades)
                        {
                            Console.WriteLine($"TRADE: orderId: {trade.OrderId}, size: {trade.BaseVolume}, role: {trade.Role}");
                            await trader.HandleTrade(trade.OrderId);
                        }

                        // place new Limit Orders
                        await trader.PlaceToMarketAsync();
                    }

                    tradeStream.Dispose();
                }
                catch (Exception ex)
                {
                    Console.WriteLine("Error on stream read:");
                    Console.WriteLine(ex);
                }
            }
        }
Пример #30
0
    void PayExpenses()
    {
        for (int i = 0; i < expenses.Count; i++)
        {
            GameManager.AdjustCash(-(expenses[i].amount + expenses[i].amountMod));
        }

        LoanData data = MarketManager.GetLoanData(toloan);

        if (data.taken)
        {
            MarketManager.PayLoanDaily();
            data = MarketManager.GetLoanData(toloan);
            AddExpense(ExpenseType.Loan, Departments.Start, data.amount / data.term);
        }

        PopulateExpense();
    }
Пример #31
0
        // 对象进入场景,在这里初始化各种数据, 资源, 模型等
        // 传入数据。
        override public void OnEnterWorld()
        {
            base.OnEnterWorld();
            LoggerHelper.Info("Avatar name: " + name);
            // 在调用该函数前, 数据已经通过EntityAttach 和 EntityCellAttach 同步完毕
            CreateModel();
            inventoryManager = new InventoryManager(this);
            bodyenhanceManager = new BodyEnhanceManager(this);
            skillManager = new PlayerSkillManager(this);
            battleManger = new PlayerBattleManager(this, skillManager as PlayerSkillManager);

            doorOfBurySystem = new DoorOfBurySystem();
            runeManager = new RuneManager(this);
            towerManager = new TowerManager(this);
            missionManager = new MissionManager(this);
            taskManager = new TaskManager(this, (int)taskMain);
            marketManager = new MarketManager(this);
            friendManager = new FriendManager(this);
            operationSystem = new OperationSystem(this);
            sanctuaryManager = new SanctuaryManager(this);
            arenaManager = new ArenaManager(this);
            dailyEventSystem = new DailyEventSystem(this);
            rankManager = new RankManager(this);
            campaignSystem = new CampaignSystem(this);
            wingManager = new WingManager(this);
            rewardManager = new RewardManager(this);
            occupyTowerSystem = new OccupyTowerSystem(this);

            TipManager.Init();
            DragonMatchManager.Init();
            fumoManager = new FumoManager(this);

            MailManager.Instance.IsMailInfoDirty = true;
            TongManager.Instance.Init();
            GuideSystem.Instance.AddListeners();
            StoryManager.Instance.AddListeners();
            EventDispatcher.AddEventListener(Events.UIBattleEvent.OnNormalAttack, NormalAttack);
            EventDispatcher.AddEventListener(Events.UIBattleEvent.OnPowerChargeStart, PowerChargeStart);
            EventDispatcher.AddEventListener(Events.UIBattleEvent.OnPowerChargeInterrupt, PowerChargeInterrupt);
            EventDispatcher.AddEventListener(Events.UIBattleEvent.OnPowerChargeComplete, PowerChargeComplete);
            EventDispatcher.AddEventListener(Events.UIBattleEvent.OnSpellOneAttack, SpellOneAttack);
            EventDispatcher.AddEventListener(Events.UIBattleEvent.OnSpellTwoAttack, SpellTwoAttack);
            EventDispatcher.AddEventListener(Events.UIBattleEvent.OnSpellThreeAttack, SpellThreeAttack);
            EventDispatcher.AddEventListener(Events.UIBattleEvent.OnSpellXPAttack, SpecialAttack);
            EventDispatcher.AddEventListener<int>(Events.UIBattleEvent.OnSpriteSkill, OnSpriteSkill);

            EventDispatcher.AddEventListener<uint>(Events.GearEvent.Teleport, Teleport);
            EventDispatcher.AddEventListener<uint, int, int, int>(Events.GearEvent.Damage, SetDamage);

            EventDispatcher.AddEventListener<int, bool>(Events.InstanceEvent.InstanceLoaded, InstanceLoaded);
            EventDispatcher.AddEventListener<ushort>(Events.OtherEvent.MapIdChanged, OnMapChanged);
            EventDispatcher.AddEventListener<ulong>(Events.OtherEvent.Withdraw, Withdraw);
            EventDispatcher.AddEventListener(Events.OtherEvent.DiamondMine, DiamondMine);
            EventDispatcher.AddEventListener(Events.OtherEvent.CheckCharge, CheckCharge);
            EventDispatcher.AddEventListener(Events.OtherEvent.Charge, Charge);

            EventDispatcher.AddEventListener(ON_TASK_GUIDE, TaskGuide);
            EventDispatcher.AddEventListener(ON_END_TASK_GUIDE, EndTaskGuide);
            EventDispatcher.AddEventListener<int, int>(ON_TASK_MISSION, MissionOpen);

            EventDispatcher.AddEventListener(Events.AIEvent.DummyThink, DummyThink);
            EventDispatcher.AddEventListener(Events.StoryEvent.CGBegin, ProcCGBegin);
            EventDispatcher.AddEventListener(Events.StoryEvent.CGEnd, ProcCGEnd);
            EventDispatcher.AddEventListener<string>(Events.GearEvent.TrapBegin, ProcTrapBegin);
            EventDispatcher.AddEventListener<string>(Events.GearEvent.TrapEnd, ProcTrapEnd);
            EventDispatcher.AddEventListener(Events.GearEvent.LiftEnter, ProcLiftEnter);
            EventDispatcher.AddEventListener<int>(Events.GearEvent.PathPointTrigger, PathPointTrigger);
            EventDispatcher.AddEventListener(Events.DirecterEvent.DirActive, DirActive);

            EventDispatcher.AddEventListener<int>(Events.EnergyEvent.BuyEnergy, BuyEnergy);
            EventDispatcher.AddEventListener(ON_VIP_REAL_STATE, OnVIPRealState);

            EventDispatcher.AddEventListener<int>(Events.DiamondToGoldEvent.GoldMetallurgy, GoldMetallurgy);

            EventDispatcher.AddEventListener(MainUIDict.MainUIEvent.AFFECTUP, OnBattleBtnPressed);
            EventDispatcher.AddEventListener(MainUIDict.MainUIEvent.OUTPUTUP, OnBattleBtnPressed);
            EventDispatcher.AddEventListener(MainUIDict.MainUIEvent.MOVEUP, OnBattleBtnPressed);
            EventDispatcher.AddEventListener(MainUIDict.MainUIEvent.NORMALATTACK, OnBattleBtnPressed);
            EventDispatcher.AddEventListener(MainUIDict.MainUIEvent.PLAYERINFOBGUP, OnBattleBtnPressed);
            EventDispatcher.AddEventListener("MainUIControllStickPressed", OnBattleBtnPressed);

            EventDispatcher.AddEventListener<Vector3>(Events.GearEvent.CrockBroken, CrockBroken);
            EventDispatcher.AddEventListener<bool, bool, Vector3>(Events.GearEvent.ChestBroken, ChestBroken);

            EventDispatcher.AddEventListener<GameObject, Vector3, float>(MogoMotor.ON_MOVE_TO_FALSE, OnMoveToFalse);
            EventDispatcher.AddEventListener(Events.OtherEvent.BossDie, BossDie);

            EventDispatcher.AddEventListener<int, bool>(Events.InstanceEvent.InstanceLoaded, SetCampControl);

            timerID = TimerHeap.AddTimer<bool>(1000, 100, SyncPos, true);
            checkDmgID = TimerHeap.AddTimer(0, 1000, CheckDmgBase);
            syncHpTimerID = TimerHeap.AddTimer(10000, 5000, SyncHp);
            skillFailoverTimer = TimerHeap.AddTimer(1000, 3000, SkillFailover);
            TimerHeap.AddTimer(5000, 0, GetServerTickReq);
            //rateTimer = TimerHeap.AddTimer(1000, 3000, CheckRate);
            CheckCharge();
            GetWingBag();
            MogoTime.Instance.InitTimeFromServer();

            MogoUIManager.Instance.LoadUIResources();
            TimerHeap.AddTimer(500, 0, EventDispatcher.TriggerEvent, Events.RuneEvent.GetBodyRunes);
            TimerHeap.AddTimer(500, 0, marketManager.GiftRecordReq);

            if (IsNewPlayer)
            {
                CurMissionID = 10100;
                CurMissionLevel = 1;

                missionManager.EnterMissionReq(CurMissionID, CurMissionLevel);
            }


            if (PlatformSdkManager.Instance)
                TimerHeap.AddTimer(1000, 60000, PlatformSdkManager.Instance.OnSetupNotification);
        }