Пример #1
0
        /// <summary>
        /// Open the door.
        /// </summary>
        virtual public void Open(Character character)
        {
            // Check additional conditions
            if (conditions != null)
            {
                foreach (AdditionalCondition condition in conditions)
                {
                    if (!condition.CheckCondition(character, this))
                    {
                        return;
                    }
                }
            }

            if (keyType == null || keyType == "")
            {
                DoOpen(character);
            }
            else
            {
                ItemManager itemManager = character.GetComponentInChildren <ItemManager> ();
                if (itemManager != null)
                {
                    if (itemManager.ItemCount(keyType) > 0)
                    {
                        DoOpen(character);
                    }
                }
                else
                {
                    Debug.LogError("Door requires a key but there is no item manager in the scene.");
                }
            }
        }
Пример #2
0
 /// <summary>
 /// Handles the item collected event.
 /// </summary>
 /// <param name="sender">Sender.</param>
 /// <param name="e">Parameters.</param>
 virtual protected void HandleItemCollected(object sender, ItemEventArgs e)
 {
     if (e.Type == itemType)
     {
         if (itemManager.ItemCount(itemType) >= threshold)
         {
             itemManager.ConsumeItem(itemType, threshold);
             characterHealth.CurrentLives += 1;
         }
     }
 }
 /// <summary>
 /// Is the jet pack engaged.
 /// </summary>
 /// <returns><c>true</c>, if pack engaged was jeted, <c>false</c> otherwise.</returns>
 virtual public bool IsJetPackEngaged()
 {
     if (jetpackFuelConsumption <= 0.0f || itemManager.ItemCount(fuelItemType) > 0)
     {
         if (character.Input.JumpButton == ButtonState.DOWN ||
             character.Input.JumpButton == ButtonState.HELD)
         {
             return(true);
         }
     }
     return(false);
 }
Пример #4
0
 /// <summary>
 /// Checks that the player has enough ammo to fire.
 /// </summary>
 /// <returns><c>true</c>, if ammo was checked, <c>false</c> otherwise.</returns>
 /// <param name="attackData">Attack data.</param>
 virtual protected bool CheckAmmo(BasicAttackData attackData)
 {
     if (attackData.attackType == AttackType.MELEE || attackData.ammoType == null || attackData.ammoType == "")
     {
         return(true);
     }
     if (itemManager.ItemCount(attackData.ammoType) > 0)
     {
         return(true);
     }
     return(false);
 }
Пример #5
0
 /// <summary>
 /// Check that the required items  is present.
 /// </summary>
 /// <returns><c>true</c>, if items was checked, <c>false</c> otherwise.</returns>
 virtual protected bool CheckItems()
 {
     if (item == null || item == "")
     {
         return(true);
     }
     if (itemManager.ItemCount(item) > 0)
     {
         return(true);
     }
     return(false);
 }
Пример #6
0
        virtual protected void UpdateItemCount()
        {
            int count = itemManager.ItemCount(itemId);

            if (itemCountText != null)
            {
                itemCountText.text = count.ToString();
            }
            if (count < 1)
            {
                Disable();
            }
            else if (!isActive)
            {
                Enable();
            }
        }
Пример #7
0
 /// <summary>
 /// Open the door.
 /// </summary>
 virtual public void Open(Character character)
 {
     if (keyType == null || keyType == "")
     {
         DoOpen(character);
     }
     else
     {
         ItemManager itemManager = character.GetComponentInChildren <ItemManager> ();
         if (itemManager != null)
         {
             if (itemManager.ItemCount(keyType) > 0)
             {
                 DoOpen(character);
             }
         }
         else
         {
             Debug.LogError("Door requires a key but there is no item manager in the scene.");
         }
     }
 }
 /// <summary>
 /// Checks the condition. For example a check when entering a trigger.
 /// </summary>
 /// <returns><c>true</c>, if enter trigger was shoulded, <c>false</c> otherwise.</returns>
 /// <param name="character">Character.</param>
 /// <param name="other">Other.</param>
 override public bool CheckCondition(Character character, object other)
 {
     if (requiredItemType != null && requiredItemType != "")
     {
         if (itemManager == null || !cacheItemManager)
         {
             itemManager = character.GetComponentInChildren <ItemManager> ();
         }
         if (itemManager == null)
         {
             Debug.LogWarning("Conditions requires an item but the character has no item manager.");
             return(false);
         }
         if (itemManager.ItemCount(requiredItemType) >= requiredItemCount)
         {
             return(true);
         }
         return(false);
     }
     Debug.LogWarning("MustHaveItemCondition has no item configured.");
     return(false);
 }
Пример #9
0
 /// <summary>
 /// Applies the filters.
 /// </summary>
 /// <returns><c>true</c>, if filtering was passed, <c>false</c> otherwise.</returns>
 /// <param name="action">Action.</param>
 /// <param name="args">Arguments.</param>
 virtual protected bool ApplyFilters(EventResponse action, System.EventArgs args)
 {
     if (args is AnimationEventArgs)
     {
         if (animationStateFilter == AnimationState.NONE || animationStateFilter == ((AnimationEventArgs)args).State)
         {
             return(true);
         }
         return(false);
     }
     if (args is ExtraDamageInfoEventArgs)
     {
         if ((stringFilter == null || stringFilter == "" || stringFilter == ((ExtraDamageInfoEventArgs)args).AttackName) &&
             (damageTypeFilter == DamageType.NONE || damageTypeFilter == ((DamageInfoEventArgs)args).DamageInfo.DamageType))
         {
             return(true);
         }
         return(false);
     }
     if (args is DamageInfoEventArgs)
     {
         if (damageTypeFilter == DamageType.NONE || damageTypeFilter == ((DamageInfoEventArgs)args).DamageInfo.DamageType)
         {
             return(true);
         }
         return(false);
     }
     if (args is ButtonEventArgs)
     {
         if (buttonStateFilter == ButtonState.ANY || buttonStateFilter == ((ButtonEventArgs)args).State)
         {
             return(true);
         }
         return(false);
     }
     if (args is AttackEventArgs)
     {
         if (stringFilter == null || stringFilter == "" || stringFilter == ((AttackEventArgs)args).Name)
         {
             return(true);
         }
         return(false);
     }
     if (args is PhaseEventArgs)
     {
         if (stringFilter == null || stringFilter == "" || stringFilter == ((PhaseEventArgs)args).PhaseName)
         {
             return(true);
         }
         return(false);
     }
     if (args is StateEventArgs)
     {
         if (stringFilter == null || stringFilter == "" || stringFilter == ((StateEventArgs)args).StateName)
         {
             return(true);
         }
         return(false);
     }
     if (args is ItemEventArgs)
     {
         if (stringFilter == null || stringFilter == "" || stringFilter == ((ItemEventArgs)args).Type)
         {
             if (intFilter == 0)
             {
                 return(true);
             }
             ItemManager itemManager = ((ItemEventArgs)args).Character.GetComponentInChildren <ItemManager> ();
             if (itemManager != null)
             {
                 if (itemManager.ItemCount(((ItemEventArgs)args).Type) >= intFilter)
                 {
                     return(true);
                 }
             }
         }
         return(false);
     }
     return(true);
 }