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); } } }
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; } }
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)); }
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); }