Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using Aquiris.Ballistic.Presentation.Adapter;
- using Aquiris.Ballistic.Presentation.View;
- using com.aquiris.ballistic.factory;
- using com.aquiris.ballistic.filter;
- using com.aquiris.ballistic.model.item.game.boost;
- using com.aquiris.ballistic.model.item.game.hero;
- using com.aquiris.ballistic.model.item.game.lockbox;
- using com.aquiris.platform;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using UnityEngine;
- namespace Aquiris.Ballistic.Presentation.Controller
- {
- public class SpecialOffersController : BallisticScreenController
- {
- //
- // Properties
- //
- protected new SpecialOffersView m_view {
- get {
- return base.m_view as SpecialOffersView;
- }
- }
- protected override string Path {
- get {
- return "special_offers_menu_main";
- }
- }
- //
- // Methods
- //
- private void AddRangeBecauseProBuilderIsStupid<T, U> (List<T> p_list, IEnumerable<U> p_range) where U : T
- {
- foreach (U current in p_range) {
- p_list.Add ((T)((object)current));
- }
- }
- public void BuyItem (IItemAdapter p_item)
- {
- QCApplication.Instance.UI.Modal.UnifiedPurchase.DisplayGameItem (p_item);
- }
- protected override void OnDestroy ()
- {
- base.OnDestroy ();
- Singleton<PlatformManager>.Instance.onPlayerProfileAndInventoryUpdate -= new Action (this.OnPlayerProfileAndInventoryUpdate);
- }
- public void OnInfoButtonClick (IItemAdapter p_gameItem)
- {
- Debug.Log ("OnInfoButtonClick: " + p_gameItem.GetModel ());
- if (p_gameItem is IWeaponAdapter) {
- QCApplication.Instance.UI.DetailedWeapon.DisplayWeapon (p_gameItem as IWeaponAdapter);
- }
- }
- private void OnPlayerProfileAndInventoryUpdate ()
- {
- this.m_profileWasUpdated = true;
- }
- public override void OnViewEnabled ()
- {
- base.OnViewEnabled ();
- if (this.m_initted) {
- return;
- }
- this.m_initted = true;
- Singleton<PlatformManager>.Instance.onPlayerProfileAndInventoryUpdate += new Action (this.OnPlayerProfileAndInventoryUpdate);
- this.RefreshItems ();
- }
- private void RefreshItems ()
- {
- this.m_view.ClearItems ();
- List<IItemAdapter> list = new List<IItemAdapter> ();
- LockBoxFilter lockBoxFilter = FilterFactory.GetLockBoxFilter ();
- lockBoxFilter.FilterAvailableByValue (true);
- lockBoxFilter.FilterOwnedSpecificWeaponsByValue (false);
- lockBoxFilter.FilterByState (this.m_view.UIStateToConsider);
- lockBoxFilter.FilterSpecificWeapons (true);
- this.AddRangeBecauseProBuilderIsStupid<IItemAdapter, IWeaponAdapter> (list, lockBoxFilter.GetResultAsWeaponAdapter ());
- lockBoxFilter.Clear ();
- lockBoxFilter.FilterAvailableByValue (true);
- lockBoxFilter.FilterByState (this.m_view.UIStateToConsider);
- lockBoxFilter.FilterSpecificWeapons (false);
- this.AddRangeBecauseProBuilderIsStupid<IItemAdapter, IItemAdapter> (list, ItemAdapterFactory.Get<LockboxGameItem> (lockBoxFilter.GetResult ()));
- WeaponFilter weaponFilter = FilterFactory.GetWeaponFilter ();
- weaponFilter.FilterAvailableWeaponsByValue (true);
- weaponFilter.FilterOwnedWeaponsByValue (false);
- weaponFilter.FilterByState (this.m_view.UIStateToConsider);
- this.AddRangeBecauseProBuilderIsStupid<IItemAdapter, IWeaponAdapter> (list, weaponFilter.GetResultAsWeaponAdapter ());
- List<HeroSkin> itemsOfType = GameItemContainer.Instance.GetItemsOfType<HeroSkin> ();
- this.AddRangeBecauseProBuilderIsStupid<IItemAdapter, IItemAdapter> (list, from item in ItemAdapterFactory.Get<HeroSkin> (itemsOfType)
- where item.IsUIStateSet (this.m_view.UIStateToConsider)
- select item);
- IOrderedEnumerable<IItemAdapter> source = from item in list
- orderby item.GetFeatureScreenSortPriority () descending
- select item;
- List<Boost> itemsOfType2 = GameItemContainer.Instance.GetItemsOfType<Boost> ();
- IOrderedEnumerable<IItemAdapter> source2 = from item in ItemAdapterFactory.Get<Boost> (itemsOfType2)
- orderby item.GetSortPriority () descending
- select item;
- for (int i = 0; i < Mathf.Min (this.m_view.TopCardsToShow, source.Count<IItemAdapter> ()); i++) {
- this.m_view.AddItem (source.ElementAt (i));
- }
- for (int j = 0; j < Mathf.Min (this.m_view.BottomCardsToShow, itemsOfType2.Count<Boost> ()); j++) {
- this.m_view.AddItem (source2.ElementAt (j));
- }
- }
- private void Update ()
- {
- if (this.m_profileWasUpdated && !QCApplication.Instance.UI.LockboxPopup.IsVisible) {
- this.m_profileWasUpdated = false;
- this.RefreshItems ();
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement