Beispiel #1
0
        private void OnCloseEquipConceptCardWindow()
        {
            if (Object.op_Equality((Object)this.mToolTipRoot, (Object)null))
            {
                return;
            }
            this.mUnit = MonoSingleton <GameManager> .Instance.Player.FindUnitDataByUniqueID(this.mUnit.UniqueID);

            UnitData dataOfClass = DataSource.FindDataOfClass <UnitData>(this.mToolTipRoot, (UnitData)null);

            dataOfClass.ConceptCard = this.mUnit.ConceptCard;
            dataOfClass.CalcStatus();
            this.Refresh(this.mIsButtonEnable);
            GameParameter.UpdateAll(this.mToolTipRoot);
        }
Beispiel #2
0
        public override void OnActivate(int pinID)
        {
            if (pinID != 0 || ((Behaviour)this).get_enabled())
            {
                return;
            }
            GameManager            instance           = MonoSingleton <GameManager> .Instance;
            PlayerData             player             = instance.Player;
            UnitData               unitDataByUniqueId = instance.Player.FindUnitDataByUniqueID((long)GlobalVars.SelectedUnitUniqueID);
            JobData                job = unitDataByUniqueId.Jobs[(int)GlobalVars.SelectedUnitJobIndex];
            int                    selectedEquipmentSlot = (int)GlobalVars.SelectedEquipmentSlot;
            EquipData              selectedEquipData     = GlobalVars.SelectedEquipData;
            int                    num = 0;
            int                    exp = 0;
            List <EnhanceMaterial> enhanceMaterials = GlobalVars.SelectedEnhanceMaterials;

            if (enhanceMaterials == null || enhanceMaterials.Count < 1)
            {
                return;
            }
            for (int index = 0; index < enhanceMaterials.Count; ++index)
            {
                EnhanceMaterial enhanceMaterial = enhanceMaterials[index];
                ItemData        itemData        = enhanceMaterial.item;
                num += (int)itemData.Param.enhace_cost * selectedEquipData.GetEnhanceCostScale() / 100 * enhanceMaterial.num;
                exp += (int)itemData.Param.enhace_point * enhanceMaterial.num;
            }
            if (num > player.Gold)
            {
                this.ActivateOutputLinks(2);
            }
            else
            {
                selectedEquipData.GainExp(exp);
                if (unitDataByUniqueId != null)
                {
                    unitDataByUniqueId.CalcStatus();
                }
                for (int index = 0; index < enhanceMaterials.Count; ++index)
                {
                    EnhanceMaterial enhanceMaterial = enhanceMaterials[index];
                    enhanceMaterial.item.Used(enhanceMaterial.num);
                }
                player.GainGold(-num);
                AnalyticsManager.TrackCurrencyUse(AnalyticsManager.CurrencyType.Zeni, AnalyticsManager.CurrencySubType.FREE, (long)num, "Enhance Equip", (Dictionary <string, object>)null);
                if (Network.Mode == Network.EConnectMode.Online)
                {
                    Dictionary <string, int> usedItems = new Dictionary <string, int>();
                    for (int index = 0; index < enhanceMaterials.Count; ++index)
                    {
                        EnhanceMaterial enhanceMaterial = enhanceMaterials[index];
                        ItemData        itemData        = enhanceMaterial.item;
                        if (enhanceMaterial.num >= 1)
                        {
                            if (!usedItems.ContainsKey(itemData.ItemID))
                            {
                                usedItems[itemData.ItemID] = 0;
                            }
                            Dictionary <string, int> dictionary;
                            string itemId;
                            (dictionary = usedItems)[itemId = itemData.ItemID] = dictionary[itemId] + enhanceMaterial.num;
                        }
                    }
                    this.ExecRequest((WebAPI) new ReqEquipExpAdd(job.UniqueID, selectedEquipmentSlot, usedItems, new Network.ResponseCallback(((FlowNode_Network)this).ResponseCallback)));
                    ((Behaviour)this).set_enabled(true);
                }
                else
                {
                    this.Success();
                }
            }
        }