/// <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."); } } }
/// <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); }
/// <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); }
/// <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); }
virtual protected void UpdateItemCount() { int count = itemManager.ItemCount(itemId); if (itemCountText != null) { itemCountText.text = count.ToString(); } if (count < 1) { Disable(); } else if (!isActive) { Enable(); } }
/// <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); }
/// <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); }