示例#1
0
        private void DrinkPotion(EPotionType p_type)
        {
            Party            party            = LegacyLogic.Instance.WorldManager.Party;
            Potion           bestPotion       = party.GetBestPotion(p_type, null);
            InventorySlotRef consumableSlot   = party.GetConsumableSlot(bestPotion);
            Int32            currentCharacter = LegacyLogic.Instance.WorldManager.Party.CurrentCharacter;

            if (consumableSlot.Slot != -1)
            {
                LegacyLogic.Instance.CommandManager.AddCommand(new ConsumeCommand(consumableSlot, currentCharacter));
            }
        }
示例#2
0
 public InventoryItemEventArgs(InventorySlotRef p_slot)
 {
     m_slot = p_slot;
     Type   = ERepairType.NONE;
 }
示例#3
0
 public ConsumeCommand(InventorySlotRef p_slot, Int32 p_targetCharacter) : base(ECommandTypes.CONSUME)
 {
     m_slot            = p_slot;
     m_targetCharacter = p_targetCharacter;
 }
示例#4
0
        public override void Consume(InventorySlotRef p_slot, Int32 p_targetCharacter)
        {
            ConsumeCommand p_command = new ConsumeCommand(p_slot, p_targetCharacter);

            LegacyLogic.Instance.CommandManager.AddCommand(p_command);
        }
示例#5
0
        public void UpdateData()
        {
            if (!m_visible)
            {
                return;
            }
            if (m_isForStandardAction)
            {
                PartyTurnActor partyTurnActor = LegacyLogic.Instance.UpdateManager.PartyTurnActor;
                m_isAvailable = false;
                m_isUsable    = true;
                switch (m_actionType)
                {
                case EQuickActionType.ATTACK:
                    m_isAvailable = partyTurnActor.CanDoCommand(MeleeAttackCommand.Instance, m_character.Index);
                    m_isUsable    = m_character.Equipment.IsMeleeAttackWeaponEquiped();
                    break;

                case EQuickActionType.ATTACKRANGED:
                    m_isAvailable = partyTurnActor.CanDoCommand(RangeAttackCommand.Instance, m_character.Index);
                    m_isUsable    = m_character.Equipment.IsRangedAttackWeaponEquiped();
                    break;

                case EQuickActionType.USE_BEST_MANAPOTION:
                {
                    Potion bestPotion = LegacyLogic.Instance.WorldManager.Party.GetBestPotion(EPotionType.MANA_POTION, null);
                    if (bestPotion != null)
                    {
                        InventorySlotRef consumableSlot = LegacyLogic.Instance.WorldManager.Party.GetConsumableSlot(bestPotion);
                        m_isAvailable = partyTurnActor.CanDoCommand(new ConsumeCommand(consumableSlot, m_character.Index), m_character.Index);
                    }
                    else
                    {
                        m_isUsable = false;
                    }
                    break;
                }

                case EQuickActionType.USE_BEST_HEALTHPOTION:
                {
                    Potion bestPotion2 = LegacyLogic.Instance.WorldManager.Party.GetBestPotion(EPotionType.HEALTH_POTION, null);
                    if (bestPotion2 != null)
                    {
                        InventorySlotRef consumableSlot2 = LegacyLogic.Instance.WorldManager.Party.GetConsumableSlot(bestPotion2);
                        m_isAvailable = partyTurnActor.CanDoCommand(new ConsumeCommand(consumableSlot2, m_character.Index), m_character.Index);
                    }
                    else
                    {
                        m_isUsable = false;
                    }
                    break;
                }

                case EQuickActionType.DEFEND:
                    m_isAvailable = partyTurnActor.CanDoCommand(DefendCommand.Instance, m_character.Index);
                    break;
                }
                NGUITools.SetActiveSelf(m_labelMana.gameObject, false);
                m_icon.color     = m_iconColor;
                m_iconItem.color = m_iconColor;
                if (m_isUsable)
                {
                    m_labelName.color = ((!m_isAvailable) ? m_unlearnedColorText : m_normalColor);
                }
                else
                {
                    m_labelName.color = m_notUsableColorText;
                }
            }
            else if (m_isForPassiveAbility)
            {
                m_labelName.color = ((!m_hasSpell) ? m_unlearnedColorText : m_normalColor);
                m_labelMana.color = ((!m_hasSpell) ? m_unlearnedColorText : m_normalColor);
                m_icon.color      = ((!m_hasSpell) ? m_unlearnedColor : m_iconColor);
                NGUITools.SetActiveSelf(m_labelMana.gameObject, true);
            }
            else
            {
                m_isUsable = true;
                NGUITools.SetActiveSelf(m_labelMana.gameObject, m_hasSpell);
                if (m_hasSpell)
                {
                    PartyTurnActor partyTurnActor2 = LegacyLogic.Instance.UpdateManager.PartyTurnActor;
                    m_isAvailable = partyTurnActor2.CanDoCommand(new CastSpellCommand(m_spell, null, null), m_character.Index);
                    m_icon.color  = m_iconColor;
                    if (m_isAvailable)
                    {
                        m_labelName.color = m_normalColor;
                        m_labelMana.color = m_normalColor;
                    }
                    else
                    {
                        m_isUsable = (m_character.ManaPoints >= m_spell.StaticData.ManaCost);
                        if (m_spell.SpellType == ECharacterSpell.SPELL_LIGHT_LAY_ON_HANDS)
                        {
                            m_isUsable = (m_character.ManaPoints >= 1);
                        }
                        m_labelName.color = ((!m_isUsable) ? m_notUsableColorText : m_unlearnedColorText);
                        m_labelMana.color = ((!m_isUsable) ? m_notUsableColorText : m_unlearnedColorText);
                    }
                }
                else
                {
                    m_isAvailable     = false;
                    m_icon.color      = m_unlearnedColor;
                    m_labelName.color = m_unlearnedColorText;
                }
            }
        }
示例#6
0
        private void OnClick()
        {
            if (!m_isForStandardAction && !m_isForPassiveAbility && !m_isUsable)
            {
                Character selectedCharacter = LegacyLogic.Instance.WorldManager.Party.SelectedCharacter;
                selectedCharacter.BarkHandler.TriggerBark(EBarks.LOW_MANA, selectedCharacter);
            }
            if (!m_isAvailable)
            {
                return;
            }
            Party party = LegacyLogic.Instance.WorldManager.Party;

            if (m_isForStandardAction)
            {
                switch (m_actionType)
                {
                case EQuickActionType.ATTACK:
                    LegacyLogic.Instance.CommandManager.AddCommand(MeleeAttackCommand.Instance);
                    break;

                case EQuickActionType.ATTACKRANGED:
                    LegacyLogic.Instance.CommandManager.AddCommand(RangeAttackCommand.Instance);
                    break;

                case EQuickActionType.USE_BEST_MANAPOTION:
                {
                    Potion bestPotion = party.GetBestPotion(EPotionType.MANA_POTION, null);
                    if (bestPotion != null)
                    {
                        InventorySlotRef consumableSlot = party.GetConsumableSlot(bestPotion);
                        LegacyLogic.Instance.CommandManager.AddCommand(new ConsumeCommand(consumableSlot, m_character.Index));
                    }
                    break;
                }

                case EQuickActionType.USE_BEST_HEALTHPOTION:
                {
                    Potion bestPotion2 = party.GetBestPotion(EPotionType.HEALTH_POTION, null);
                    if (bestPotion2 != null)
                    {
                        InventorySlotRef consumableSlot2 = party.GetConsumableSlot(bestPotion2);
                        LegacyLogic.Instance.CommandManager.AddCommand(new ConsumeCommand(consumableSlot2, m_character.Index));
                    }
                    break;
                }

                case EQuickActionType.DEFEND:
                    LegacyLogic.Instance.CommandManager.AddCommand(DefendCommand.Instance);
                    break;
                }
            }
            else if (!m_isForPassiveAbility)
            {
                if (m_spell.TargetType == ETargetType.SINGLE_PARTY_MEMBER)
                {
                    OpenSpellCharacterSelectionEventArgs p_eventArgs = new OpenSpellCharacterSelectionEventArgs(m_spell);
                    LegacyLogic.Instance.EventManager.InvokeEvent(this, EEventType.CHARACTER_CAST_SPELL_WITH_CHARACTER_SELECTION, p_eventArgs);
                }
                else if (m_spell.SpellType == ECharacterSpell.SPELL_PRIME_SPIRIT_BEACON)
                {
                    SpiritBeaconEventArgs p_eventArgs2 = new SpiritBeaconEventArgs(null);
                    LegacyLogic.Instance.EventManager.InvokeEvent(m_spell, EEventType.CHARACTER_CAST_SPIRIT_BEACON, p_eventArgs2);
                }
                else if (m_spell.SpellType == ECharacterSpell.SPELL_PRIME_IDENTIFY)
                {
                    LegacyLogic.Instance.EventManager.InvokeEvent(m_spell, EEventType.CHARACTER_CAST_IDENTIFY, EventArgs.Empty);
                }
                else
                {
                    LegacyLogic.Instance.CommandManager.AddCommand(new CastSpellCommand(m_spell, null, null));
                }
            }
        }