Exemple #1
0
 private void InitPropertyDescription()
 {
     if (SpellID > 0)
     {
         CharacterSpell characterSpell = SpellFactory.CreateCharacterSpell((ECharacterSpell)SpellID);
         if (characterSpell != null)
         {
             GameConfig game = ConfigManager.Instance.Game;
             Single     p_magicFactor;
             if (ScrollTier == 1)
             {
                 p_magicFactor = game.ScrollNoviceMagicFactor;
             }
             else if (ScrollTier == 2)
             {
                 p_magicFactor = game.ScrollExpertMagicFactor;
             }
             else if (ScrollTier == 3)
             {
                 p_magicFactor = game.ScrollMasterMagicFactor;
             }
             else
             {
                 p_magicFactor = game.ScrollGrandmasterMagicFactor;
             }
             m_properties["SCROLL_EFFECT"]            = characterSpell.NameKey;
             m_properties["SCROLL_SPELL_DESCRIPTION"] = characterSpell.GetDescription(p_magicFactor);
         }
     }
 }
Exemple #2
0
        protected override void DoExecute()
        {
            CharacterSpell characterSpell = SpellFactory.CreateCharacterSpell((ECharacterSpell)m_spellID);

            if (characterSpell != null)
            {
                characterSpell.CastSpellByInteractiveObject(m_magicFactor);
                FinishExecution();
                return;
            }
            throw new Exception("Invalid spell ID " + m_spellID);
        }
 public void UpdateSpells()
 {
     m_spells.Clear();
     foreach (TradingSpellOffer tradingSpellOffer in m_offers)
     {
         if (tradingSpellOffer.CheckConditions(m_npc) == EDialogState.NORMAL)
         {
             foreach (Int32 p_spellType in tradingSpellOffer.OfferData.SpellIDs)
             {
                 CharacterSpell item = SpellFactory.CreateCharacterSpell((ECharacterSpell)p_spellType);
                 m_spells.Add(item);
             }
         }
     }
 }
        public void AddSpell(ECharacterSpell p_spell, Boolean p_track)
        {
            if (HasSpell(p_spell))
            {
                return;
            }
            CharacterSpell characterSpell = SpellFactory.CreateCharacterSpell(p_spell);

            if (CanLearnSpell(characterSpell))
            {
                m_spells.Add(characterSpell);
                if (p_track)
                {
                    LegacyLogic.Instance.TrackingManager.TrackSpellLearned(characterSpell, m_character);
                    LegacyLogic.Instance.EventManager.InvokeEvent(m_character, EEventType.CHARACTER_LEARNED_SPELL, EventArgs.Empty);
                }
            }
        }
 private void CastSpell()
 {
     if (Scroll != null)
     {
         CharacterSpell   p_spell   = SpellFactory.CreateCharacterSpell((ECharacterSpell)Scroll.SpellID);
         CastSpellCommand p_command = new CastSpellCommand(p_spell, null, Scroll);
         LegacyLogic.Instance.CommandManager.AddCommand(p_command);
     }
     else
     {
         CastSpellCommand p_command2 = new CastSpellCommand(Spell, null, null);
         LegacyLogic.Instance.CommandManager.AddCommand(p_command2);
     }
     if (Result == SpiritBeaconEventArgs.EResult.SET_POINT)
     {
         LegacyLogic.Instance.WorldManager.SpiritBeaconController.Action = ESpiritBeaconAction.SET_POINT;
     }
     else if (Result == SpiritBeaconEventArgs.EResult.TRAVEL)
     {
         LegacyLogic.Instance.WorldManager.SpiritBeaconController.Action = ESpiritBeaconAction.TRAVEL;
     }
 }
Exemple #6
0
        public void Init(Party p_party)
        {
            m_party = p_party;
            m_checkBox.isChecked = true;
            UICheckbox checkBox = m_checkBox;

            checkBox.onStateChange       = (UICheckbox.OnStateChange)Delegate.Combine(checkBox.onStateChange, new UICheckbox.OnStateChange(OnCheckboxStateChanged));
            m_spellTabs.TabIndexChanged += OnSpellTabSelected;
            ECharacterSpell[] values = EnumUtil <ECharacterSpell> .Values;
            m_spells = new Dictionary <ECharacterSpell, CharacterSpell>();
            for (Int32 i = 0; i < values.Length - 1; i++)
            {
                try
                {
                    m_spells[values[i]] = SpellFactory.CreateCharacterSpell(values[i]);
                }
                catch (Exception exception)
                {
                    Debug.LogException(exception);
                }
            }
            LegacyLogic.Instance.EventManager.RegisterEvent(EEventType.UPDATE_AVAILABLE_ACTIONS, new EventHandler(OnUpdateAvailableActions));
        }
Exemple #7
0
        public void Fill(Skill p_skill, TooltipType p_type, Boolean p_isDefault)
        {
            Init();
            Single  num  = m_outerPadding + m_innerPadding;
            Boolean flag = p_type != TooltipType.CURRENT_EFFECT_NEXT || p_skill.Tier >= ETier.NOVICE;

            m_name.SetVisible(flag);
            if (flag)
            {
                m_name.UpdatePositionY(-num);
                FillSkillName(p_skill, p_type);
                num += m_name.Size.y + m_innerPadding;
            }
            Boolean flag2 = p_type == TooltipType.BASE || p_type == TooltipType.PARTY_CREATION;

            m_itemSlot.SetVisible(flag2);
            m_level.SetVisible(flag2);
            if (flag2)
            {
                m_itemSlot.UpdatePosition(new Vector3(-m_name.Size.x / 2f, -num, 0f));
                m_itemSlot.SetItem(p_skill.Icon);
                m_level.VerticalAlign = TooltipGroup.Align.CENTER;
                m_level.MinHeight     = m_itemSlot.Size.y;
                m_level.UpdatePositionY(-num);
                FillSkillLevel(p_skill, p_type, p_isDefault);
                num += m_level.Size.y + m_innerPadding;
            }
            Boolean flag3 = p_type == TooltipType.BASE || p_type == TooltipType.PARTY_CREATION || p_type == TooltipType.CURRENT_EFFECT_PREV || (p_type == TooltipType.CURRENT_EFFECT_NEXT && p_skill.Tier >= ETier.NOVICE);

            m_description.SetVisible(flag3);
            if (flag3)
            {
                m_description.UpdatePositionY(-num);
                FillSkillDescription(p_skill, p_type, p_isDefault);
                num += m_description.Size.y + m_innerPadding;
            }
            Boolean flag4 = p_type == TooltipType.CURRENT_EFFECT_NEXT || (p_type == TooltipType.CURRENT_EFFECT_PREV && p_skill.Level > 1);

            m_subHeadLine.SetVisible(flag4);
            if (flag4)
            {
                m_subHeadLine.UpdatePositionY(-num);
                if (p_type == TooltipType.CURRENT_EFFECT_NEXT)
                {
                    m_subHeadLine.UpdateText(LocaManager.GetText("SKILL_NEXT_INCREASE"));
                }
                else
                {
                    m_subHeadLine.UpdateText(LocaManager.GetText("SKILL_PREV_INCREASE"));
                }
                num += m_subHeadLine.Size.y + m_innerPadding;
            }
            Boolean flag5 = (p_type != TooltipType.CURRENT_EFFECT_PREV || p_skill.Level > 1) && (p_type != TooltipType.PARTY_CREATION || IsMagicSchoolSkill(p_skill));

            m_effect.SetVisible(flag5);
            if (flag5)
            {
                m_effect.UpdatePositionY(-num);
                FillSkillEffect(p_skill, p_type);
                num += m_effect.Size.y + m_innerPadding;
            }
            Boolean flag6 = p_type == TooltipType.PARTY_CREATION && IsMagicSchoolSkill(p_skill);
            Int32   num2  = 0;

            for (Int32 i = 0; i < m_spellSlot.Length; i++)
            {
                m_spellSlot[i].SetVisible(false);
                m_spellName[i].SetVisible(false);
            }
            if (flag6)
            {
                foreach (SkillEffectStaticData skillEffectStaticData in p_skill.Tier1Effects)
                {
                    if (skillEffectStaticData.Type == ESkillEffectType.LEARN_SPELL)
                    {
                        Int32          p_spellType    = (Int32)skillEffectStaticData.Value;
                        CharacterSpell characterSpell = SpellFactory.CreateCharacterSpell((ECharacterSpell)p_spellType);
                        m_spellSlot[num2].SetVisible(true);
                        m_spellSlot[num2].UpdatePosition(new Vector3(-m_name.Size.x / 2f, -num, 0f));
                        m_spellSlot[num2].SetItem(characterSpell.StaticData.Icon);
                        m_spellName[num2].SetVisible(true);
                        m_spellName[num2].VerticalAlign = TooltipGroup.Align.CENTER;
                        m_spellName[num2].MinHeight     = m_spellSlot[num2].Size.y;
                        m_spellName[num2].UpdatePositionY(-num);
                        m_spellName[num2].UpdateText(LocaManager.GetText(characterSpell.NameKey));
                        num += m_spellName[num2].Size.y + m_innerPadding;
                        num2++;
                    }
                }
            }
            m_background.Scale(m_name.Size.x + m_outerPadding * 2f, num - m_innerPadding + m_outerPadding);
        }