示例#1
0
        public override void OnExecute(TriggerAction.TYPE action)
        {
            base.OnExecute(action);
            AI.AIID id   = this.m_AI.m_ID;
            Item    item = ItemsManager.Get().CreateItem(id.ToString() + "_Body", false);

            if (id == AI.AIID.PoisonDartFrog)
            {
                List <Renderer> componentsDeepChild = General.GetComponentsDeepChild <Renderer>(base.gameObject);
                Material        material            = null;
                for (int i = 0; i < componentsDeepChild.Count; i++)
                {
                    material = componentsDeepChild[i].material;
                }
                item.ApplyMaterial(material);
            }
            if (!item.Take())
            {
                Inventory3DManager.Get().DropItem(item);
            }
            UnityEngine.Object.Destroy(this.m_AI.gameObject);
            this.m_AI = null;
        }
示例#2
0
 public override void OnAnimEvent(AnimEventID id)
 {
     base.OnAnimEvent(id);
     if (id == AnimEventID.CraftingEnd)
     {
         Inventory3DManager.Get().m_InventoryImage.enabled = true;
         InventoryBackpack.Get().m_Backpack.gameObject.SetActive(true);
         CursorManager.Get().ShowCursor(true);
         Inventory3DManager.Get().m_InputsBlocked = false;
         CraftingManager.Get().Craft();
         this.m_Animator.SetBool(this.m_CraftHash, false);
         this.m_AudioSource.Stop();
         this.m_InProgress = false;
         if (this.m_Player.GetCurrentItem(Hand.Right))
         {
             this.m_Player.GetCurrentItem(Hand.Right).gameObject.SetActive(true);
         }
         if (this.m_Player.GetCurrentItem(Hand.Left))
         {
             this.m_Player.GetCurrentItem(Hand.Left).gameObject.SetActive(true);
         }
     }
 }
示例#3
0
 public void OnNotepad(GameObject obj)
 {
     if (!Player.Get().CanShowNotepad())
     {
         return;
     }
     if (Inventory3DManager.Get().gameObject.activeSelf)
     {
         Inventory3DManager.Get().Deactivate();
     }
     if (BodyInspectionController.Get().IsActive())
     {
         Player.Get().StopController(PlayerControllerType.BodyInspection);
     }
     if (!NotepadController.Get().IsActive())
     {
         Player.Get().StartController(PlayerControllerType.Notepad);
     }
     else
     {
         NotepadController.Get().Hide();
     }
 }
示例#4
0
    private void PlayMovieWithFadeInternal()
    {
        this.m_TextSkip.text = GreenHellGame.Instance.GetLocalization().Get("HUDSkipMovie");
        VideoClip videoClip = Resources.Load("Movies/" + this.m_MovieName) as VideoClip;

        if (videoClip == null)
        {
            this.SetState(MovieWithFadeState.PreFadeOut);
            return;
        }
        this.m_VideoPlayer.clip = videoClip;
        this.m_VideoPlayer.SetTargetAudioSource(0, base.GetComponent <AudioSource>());
        this.m_VideoPlayer.Play();
        this.m_Texture.enabled = true;
        this.m_Texture.gameObject.SetActive(true);
        this.m_BG.gameObject.SetActive(true);
        this.m_PlayingMovieClip   = videoClip;
        this.m_MainCamera         = Camera.main;
        this.m_MainCamera.enabled = false;
        Inventory3DManager.Get().m_Camera.enabled = false;
        this.m_Camera.enabled   = true;
        this.m_VideoJustStarted = true;
    }
    public void PlayCutscene(string name)
    {
        if (Scenario.Get().m_IsLoading)
        {
            return;
        }
        PlayableDirector cutscene = this.GetCutscene(name);

        if (!cutscene)
        {
            return;
        }
        if (Inventory3DManager.Get().gameObject.activeSelf)
        {
            Inventory3DManager.Get().Deactivate();
        }
        this.m_CurrentCutscene = cutscene;
        this.m_CurrentCutscene.Play();
        this.m_PlayTime = 0f;
        Watch.Get().gameObject.SetActive(true);
        Player.Get().StartController(PlayerControllerType.PlayerCutscene);
        PlayableDirectorEx component = cutscene.gameObject.GetComponent <PlayableDirectorEx>();

        if (component != null)
        {
            this.m_PlayableDirectorEx = component;
            if (component.m_FollowOffsetHelper)
            {
                this.m_StoreStartPosition = true;
                return;
            }
        }
        else
        {
            DebugUtils.Assert("Missing PlayableDirectorEx in cutscene - " + name, true, DebugUtils.AssertType.Info);
        }
    }
示例#6
0
    private void UpdateBlock()
    {
        bool flag = InputsManager.Get().IsActionActive(InputsManager.InputAction.Block);

        if (this.m_IsBlock != flag && !Player.Get().m_Animator.GetBool(Player.Get().m_CleanUpHash))
        {
            this.SetBlock(!this.m_IsBlock);
        }
        if (!flag)
        {
            this.m_WasBlockBroken = false;
        }
        if (this.m_IsBlock)
        {
            this.m_LastBlockTime = Time.time;
            PlayerConditionModule.Get().DecreaseStamina(PlayerConditionModule.Get().GetStaminaDecrease(StaminaDecreaseReason.Block) * Time.deltaTime);
            if (SwimController.Get().IsActive())
            {
                this.SetBlock(false);
                return;
            }
            if (Inventory3DManager.Get().gameObject.activeSelf)
            {
                this.SetBlock(false);
                return;
            }
            if (HUDReadableItem.Get().enabled)
            {
                this.SetBlock(false);
                return;
            }
            if (Player.Get().m_Animator.GetBool(Player.Get().m_CleanUpHash))
            {
                this.SetBlock(false);
            }
        }
    }
示例#7
0
    protected override void OnShow()
    {
        base.OnShow();
        Player.Get().BlockRotation();
        CursorManager.Get().ShowCursor(true);
        Vector3 position = base.gameObject.transform.position;

        CursorManager.Get().SetCursorPos(position);
        for (int i = 0; i < 6; i++)
        {
            if (!this.IsSlotActive((HUDWheel.HUDWheelSlot)i))
            {
                this.m_Icons[i].color = this.m_InactiveColor;
            }
            else
            {
                this.m_Icons[i].color = this.m_ActiveColor;
            }
        }
        if (Inventory3DManager.Get().IsActive())
        {
            Inventory3DManager.Get().Deactivate();
        }
        if (BodyInspectionController.Get().IsActive())
        {
            BodyInspectionController.Get().Hide();
        }
        if (NotepadController.Get().IsActive())
        {
            NotepadController.Get().Hide();
        }
        if (MapController.Get().IsActive())
        {
            MapController.Get().Hide();
        }
    }
示例#8
0
 protected override void Update()
 {
     base.Update();
     this.UpdateAnimations();
     this.UpdateColor();
     this.UpdateEquippedIcon();
     this.m_PadQuitHint.SetActive(GreenHellGame.IsPadControllerActive() && !BodyInspectionController.Get().IsActive());
     this.m_PadSortHint.SetActive(GreenHellGame.IsPadControllerActive() && !BodyInspectionController.Get().IsActive());
     this.m_IsHovered = RectTransformUtility.RectangleContainsScreenPoint(this.m_BG.rectTransform, Input.mousePosition);
     if (this.m_IsHovered)
     {
         PocketImageData pocketImageData = null;
         foreach (PocketImageData pocketImageData2 in this.m_PocketImages)
         {
             if (pocketImageData2.selection.gameObject.activeSelf)
             {
                 pocketImageData = pocketImageData2;
                 break;
             }
         }
         CursorManager.Get().SetCursor((pocketImageData != null) ? CursorManager.TYPE.MouseOver : CursorManager.TYPE.Normal);
         if (pocketImageData != null && Input.GetKeyDown(InputHelpers.PadButton.Button_X.KeyFromPad()))
         {
             this.OnPocketClick(pocketImageData.pocket.ToString());
         }
     }
     foreach (Image image in this.m_PADChangeTabs)
     {
         if (image.gameObject.activeSelf)
         {
             Color color = image.color;
             color.a     = (Inventory3DManager.Get().m_CarriedItem ? (this.m_PADChangeTabDefaultAlpha * 0.5f) : this.m_PADChangeTabDefaultAlpha);
             image.color = color;
         }
     }
 }
示例#9
0
	public void StartCrafting(List<Item> items)
	{
		this.m_Items.Clear();
		foreach (Item item in items)
		{
			this.m_Items.Add(item);
			item.gameObject.SetActive(false);
		}
		CraftingManager.Get().RemoveAllItems(true);
		this.m_Animator.SetBool(this.m_CraftHash, true);
		if (this.m_Player.GetCurrentItem(Hand.Right))
		{
			this.m_Player.GetCurrentItem(Hand.Right).gameObject.SetActive(false);
		}
		if (this.m_Player.GetCurrentItem(Hand.Left))
		{
			this.m_Player.GetCurrentItem(Hand.Left).gameObject.SetActive(false);
		}
		Inventory3DManager.Get().Deactivate();
		Player.Get().BlockMoves();
		Player.Get().BlockRotation();
		this.m_InProgress = true;
		this.PlayCraftingSound();
	}
示例#10
0
    public bool PlayMovie(string movie_name)
    {
        this.m_Type          = MovieType.Simple;
        this.m_TextSkip.text = GreenHellGame.Instance.GetLocalization().Get("HUDSkipMovie");
        VideoClip videoClip = Resources.Load("Movies/" + movie_name) as VideoClip;

        if (videoClip == null)
        {
            return(false);
        }
        this.m_VideoPlayer.clip = videoClip;
        this.m_VideoPlayer.SetTargetAudioSource(0, base.GetComponent <AudioSource>());
        this.m_VideoPlayer.Play();
        this.m_Texture.enabled = true;
        this.m_Texture.gameObject.SetActive(true);
        this.m_BG.gameObject.SetActive(true);
        this.m_PlayingMovieClip   = videoClip;
        this.m_MainCamera         = Camera.main;
        this.m_MainCamera.enabled = false;
        Inventory3DManager.Get().m_Camera.enabled = false;
        this.m_Camera.enabled   = true;
        this.m_VideoJustStarted = true;
        return(true);
    }
示例#11
0
 protected override bool ShouldShow()
 {
     return(!Player.Get().IsDead() && !Player.Get().m_DreamActive&& !CutscenesManager.Get().IsCutscenePlaying() && !SleepController.Get().IsActive() && !HUDWheel.Get().enabled&& !Storage3D.Get().IsActive() && !BodyInspectionController.Get().IsBandagingInProgress() && (Inventory3DManager.Get().gameObject.activeSelf || NotepadController.Get().IsActive() || MapController.Get().IsActive() || BodyInspectionController.Get().IsActive()));
 }
 private void UpdateSlotActivity()
 {
     if (!Inventory3DManager.Get().m_CarriedItem)
     {
         this.m_GetFromContainerSlot.gameObject.SetActive(false);
     }
     else if (Inventory3DManager.Get().m_CarriedItem.m_Info.m_ID == ItemID.Coconut)
     {
         this.m_GetFromContainerSlot.gameObject.SetActive(false);
     }
     else if (this.m_GetFromContainerSlot.gameObject.activeSelf)
     {
         if (!this.m_GetFromContainerSlot.CanInsertItem(Inventory3DManager.Get().m_CarriedItem))
         {
             this.m_GetFromContainerSlot.gameObject.SetActive(false);
         }
     }
     else if (this.m_GetFromContainerSlot.CanInsertItem(Inventory3DManager.Get().m_CarriedItem))
     {
         LiquidContainerInfo liquidContainerInfo = (LiquidContainerInfo)Inventory3DManager.Get().m_CarriedItem.m_Info;
         if (liquidContainerInfo.m_Amount < liquidContainerInfo.m_Capacity)
         {
             this.m_GetFromContainerSlot.gameObject.SetActive(true);
         }
     }
     if (this.m_Info.m_ID == ItemID.Coconut)
     {
         this.m_GetFromCollectorSlot.gameObject.SetActive(false);
         this.m_PourToCollectorSlot.gameObject.SetActive(false);
     }
     if (this.m_GetFromCollectorSlot)
     {
         if (this.m_CollectorData.m_Amount < 1f)
         {
             this.m_GetFromCollectorSlot.gameObject.SetActive(false);
         }
         else if (this.m_CollectorData.m_Amount > 0f && this.m_CollectorLiquidType != LiquidType.Water && this.m_CollectorLiquidType != LiquidType.UnsafeWater && this.m_CollectorLiquidType != LiquidType.DirtyWater)
         {
             this.m_GetFromCollectorSlot.gameObject.SetActive(false);
         }
         else if (this.m_GetFromCollectorSlot.gameObject.activeSelf)
         {
             if (this.m_CollectorData.m_Amount < 1f)
             {
                 this.m_GetFromCollectorSlot.gameObject.SetActive(false);
             }
             else if (!this.m_GetFromCollectorSlot.CanInsertItem(Inventory3DManager.Get().m_CarriedItem))
             {
                 this.m_GetFromCollectorSlot.gameObject.SetActive(false);
             }
             else
             {
                 LiquidContainerInfo liquidContainerInfo2 = (LiquidContainerInfo)Inventory3DManager.Get().m_CarriedItem.m_Info;
                 if (liquidContainerInfo2.m_Amount >= liquidContainerInfo2.m_Capacity)
                 {
                     this.m_GetFromCollectorSlot.gameObject.SetActive(false);
                 }
             }
         }
         else if (this.m_GetFromCollectorSlot.CanInsertItem(Inventory3DManager.Get().m_CarriedItem))
         {
             if (Inventory3DManager.Get().m_CarriedItem.m_Info.m_ID == ItemID.Coconut)
             {
                 this.m_GetFromCollectorSlot.gameObject.SetActive(false);
             }
             else
             {
                 LiquidContainerInfo liquidContainerInfo3 = (LiquidContainerInfo)Inventory3DManager.Get().m_CarriedItem.m_Info;
                 if (liquidContainerInfo3.m_Amount < liquidContainerInfo3.m_Capacity)
                 {
                     this.m_GetFromCollectorSlot.gameObject.SetActive(true);
                 }
             }
         }
     }
     if (this.m_PourToCollectorSlot)
     {
         if (this.m_PourToCollectorSlot.gameObject.activeSelf)
         {
             if (!Inventory3DManager.Get().m_CarriedItem)
             {
                 this.m_PourToCollectorSlot.gameObject.SetActive(false);
                 return;
             }
             if (((LiquidContainerInfo)Inventory3DManager.Get().m_CarriedItem.m_Info).m_Amount < 1f)
             {
                 this.m_PourToCollectorSlot.gameObject.SetActive(false);
                 return;
             }
             if (!this.m_PourToCollectorSlot.CanInsertItem(Inventory3DManager.Get().m_CarriedItem))
             {
                 this.m_PourToCollectorSlot.gameObject.SetActive(false);
                 return;
             }
             if (this.m_CollectorData.m_Amount >= this.m_CollectorData.m_Capacity)
             {
                 this.m_PourToCollectorSlot.gameObject.SetActive(false);
                 return;
             }
         }
         else if (this.m_PourToCollectorSlot.CanInsertItem(Inventory3DManager.Get().m_CarriedItem))
         {
             if ((this.m_Info.m_ID == ItemID.Bidon || this.m_Info.m_ID == ItemID.Coconut_Bidon) && Inventory3DManager.Get().m_CarriedItem.m_Info.IsLiquidContainer() && ((LiquidContainerInfo)Inventory3DManager.Get().m_CarriedItem.m_Info).m_Amount >= 1f && ((LiquidContainerInfo)Inventory3DManager.Get().m_CarriedItem.m_Info).m_LiquidType != LiquidType.Water && ((LiquidContainerInfo)Inventory3DManager.Get().m_CarriedItem.m_Info).m_LiquidType != LiquidType.UnsafeWater && ((LiquidContainerInfo)Inventory3DManager.Get().m_CarriedItem.m_Info).m_LiquidType != LiquidType.DirtyWater)
             {
                 this.m_PourToCollectorSlot.gameObject.SetActive(false);
                 return;
             }
             if (this.m_CollectorData.m_Amount < this.m_CollectorData.m_Capacity)
             {
                 this.m_PourToCollectorSlot.gameObject.SetActive(true);
             }
         }
     }
 }
示例#13
0
    private void SetupConsumableEffects()
    {
        if (!this.m_ConsumableEffects)
        {
            return;
        }
        if (!Inventory3DManager.Get().gameObject.activeSelf || this.IsExpanded())
        {
            this.m_ConsumableEffects.gameObject.SetActive(false);
            return;
        }
        Trigger trigger = this.GetTrigger();

        if (trigger == null || !trigger.IsItem())
        {
            this.m_ConsumableEffects.gameObject.SetActive(false);
            return;
        }
        Item item = (Item)trigger;

        if (!item.m_Info.IsConsumable() && !item.m_Info.IsLiquidContainer())
        {
            this.m_ConsumableEffects.gameObject.SetActive(false);
            return;
        }
        int num = 0;

        if (item.m_Info.IsConsumable())
        {
            if (!ItemsManager.Get().WasConsumed(item.m_Info.m_ID))
            {
                this.m_UnknownEffect.SetActive(true);
            }
            else
            {
                this.m_UnknownEffect.SetActive(false);
                ConsumableInfo consumableInfo = (ConsumableInfo)item.m_Info;
                if (consumableInfo.m_Proteins > 0f)
                {
                    this.SetupEffect("Watch_protein_icon", IconColors.GetColor(IconColors.Icon.Proteins), consumableInfo.m_Proteins, "HUD_Nutrition_Protein", ref num, -1f);
                }
                if (consumableInfo.m_Fat > 0f)
                {
                    this.SetupEffect("Watch_fat_icon", IconColors.GetColor(IconColors.Icon.Fat), consumableInfo.m_Fat, "HUD_Nutrition_Fat", ref num, -1f);
                }
                if (consumableInfo.m_Carbohydrates > 0f)
                {
                    this.SetupEffect("Watch_carbo_icon", IconColors.GetColor(IconColors.Icon.Carbo), consumableInfo.m_Carbohydrates, "HUD_Nutrition_Carbo", ref num, -1f);
                }
                if (consumableInfo.m_Water > 0f)
                {
                    this.SetupEffect("Watch_water_icon", IconColors.GetColor(IconColors.Icon.Hydration), consumableInfo.m_Water, "HUD_Hydration", ref num, -1f);
                }
                if (consumableInfo.m_AddEnergy > 0f)
                {
                    this.SetupEffect("Energy_icon", Color.white, consumableInfo.m_AddEnergy, "HUD_Energy", ref num, -1f);
                }
                if ((float)consumableInfo.m_SanityChange > 0f)
                {
                    this.SetupEffect("Default_Pickup", Color.white, (float)consumableInfo.m_SanityChange, "HUD_Sanity", ref num, -1f);
                }
                if (consumableInfo.m_ConsumeEffect == ConsumeEffect.FoodPoisoning)
                {
                    this.SetupEffect("Vomit_icon_H", Color.white, (float)consumableInfo.m_ConsumeEffectLevel, "HUD_FoodPoisoning", ref num, -1f);
                }
            }
        }
        else if (item.m_Info.IsLiquidContainer())
        {
            LiquidContainerInfo liquidContainerInfo = (LiquidContainerInfo)item.m_Info;
            if (liquidContainerInfo.m_Amount > 0f)
            {
                LiquidData liquidData = LiquidManager.Get().GetLiquidData(liquidContainerInfo.m_LiquidType);
                if (liquidContainerInfo.m_Amount > 0f)
                {
                    this.SetupEffect("Watch_water_icon", IconColors.GetColor(IconColors.Icon.Hydration), liquidContainerInfo.m_Amount, "HUD_Hydration", ref num, liquidContainerInfo.m_Capacity);
                }
                if (liquidData.m_Energy > 0f)
                {
                    this.SetupEffect("Energy_icon", Color.white, liquidData.m_Energy, "HUD_Energy", ref num, -1f);
                }
                if (liquidData.m_ConsumeEffect == ConsumeEffect.FoodPoisoning)
                {
                    this.SetupEffect("Vomit_icon_H", Color.white, (float)liquidData.m_ConsumeEffectLevel, "HUD_FoodPoisoning", ref num, -1f);
                }
            }
            this.m_UnknownEffect.SetActive(num == 0);
        }
        for (int i = num; i < this.m_EffectsData.Count; i++)
        {
            this.m_EffectsData[i].m_Parent.SetActive(false);
        }
        this.m_ConsumableEffects.gameObject.SetActive(true);
    }
 private bool CanAttack()
 {
     return(!FightController.s_BlockFight && !MainLevel.Instance.IsPause() && Time.time - MainLevel.Instance.m_LastUnpauseTime >= 0.25f && !this.m_Player.IsDead() && !SwimController.Get().IsActive() && !HUDWheel.Get().enabled&& !BodyInspectionController.Get().IsActive() && !WatchController.Get().IsActive() && !NotepadController.Get().IsActive() && !MapController.Get().IsActive() && this.m_ActionAllowed && !this.m_Player.GetRotationBlocked() && !Inventory3DManager.Get().gameObject.activeSelf&& !HitReactionController.Get().IsActive() && !base.IsBlock() && this.m_CurrentParam != 6 && this.m_CurrentParam != 8 && !ScenarioManager.Get().IsBoolVariableTrue("PlayerMechGameEnding") && !HUDSelectDialog.Get().enabled);
 }
示例#15
0
    protected override void Update()
    {
        base.Update();
        this.m_BackpackHint.SetActive(GreenHellGame.IsPadControllerActive() && !Inventory3DManager.Get().IsActive());
        this.m_SortBackpackHint.SetActive(GreenHellGame.IsPadControllerActive() && Inventory3DManager.Get().IsActive());
        Limb limb = Limb.None;

        if (GreenHellGame.IsPCControllerActive())
        {
            for (int i = 0; i < 4; i++)
            {
                if (this.m_SelectionColliders[i].OverlapPoint(Input.mousePosition))
                {
                    limb = (Limb)i;
                    break;
                }
            }
        }
        else if (!HUDItem.Get().enabled)
        {
            float   axis  = CrossPlatformInputManager.GetAxis("LeftStickX");
            float   axis2 = CrossPlatformInputManager.GetAxis("LeftStickY");
            Vector2 zero  = Vector2.zero;
            zero.x = axis;
            zero.y = axis2;
            if (zero.magnitude > 0.08f)
            {
                float num = Vector3.Angle(zero, Vector3.up);
                if (axis > 0f)
                {
                    num = 360f - num;
                }
                if (num <= 90f)
                {
                    limb = Limb.RArm;
                }
                else if (num > 90f && num <= 180f)
                {
                    limb = Limb.RLeg;
                }
                else if (num > 180f && num <= 270f)
                {
                    limb = Limb.LLeg;
                }
                else if (num > 270f)
                {
                    limb = Limb.LArm;
                }
            }
        }
        this.SelectLimb(limb);
        if ((GreenHellGame.IsPCControllerActive() && Input.GetMouseButtonDown(0)) || (GreenHellGame.IsPadControllerActive() && Input.GetKeyDown(InputHelpers.PadButton.L3.KeyFromPad())))
        {
            this.OnClickLimb(limb);
            switch (limb)
            {
            case Limb.LArm:
                BodyInspectionController.Get().m_Inputs.m_ChooseLimbX = -1f;
                BodyInspectionController.Get().m_Inputs.m_ChooseLimbY = 1f;
                break;

            case Limb.RArm:
                BodyInspectionController.Get().m_Inputs.m_ChooseLimbX = 1f;
                BodyInspectionController.Get().m_Inputs.m_ChooseLimbY = 1f;
                break;

            case Limb.LLeg:
                BodyInspectionController.Get().m_Inputs.m_ChooseLimbX = -1f;
                BodyInspectionController.Get().m_Inputs.m_ChooseLimbY = -1f;
                break;

            case Limb.RLeg:
                BodyInspectionController.Get().m_Inputs.m_ChooseLimbX = 1f;
                BodyInspectionController.Get().m_Inputs.m_ChooseLimbY = -1f;
                break;
            }
        }
        this.UpdateArmor();
        this.UpdateSmallIcons();
        this.UpdateArmorTooltip();
    }
        public override void UpdateScale()
        {
            if (!GulliverMod.IsEnabled)
            {
                base.UpdateScale();
            }
            else
            {
                if (m_IsBeingDestroyed || !ReplIsOwner())
                {
                    return;
                }

                m_WantedScale = m_DefaultLocalScale;

                if (m_CurrentSlot && m_CurrentSlot.m_InventoryStackSlot)
                {
                    m_WantedScale = Vector3.one;
                }
                else
                {
                    if (m_CurrentSlot != null && m_CurrentSlot.m_IsHookBaitSlot)
                    {
                        return;
                    }
                    else if (Inventory3DManager.Get().m_StackItems.Contains(this))
                    {
                        m_WantedScale = Vector3.one;
                    }
                    else if ((m_InInventory || m_InStorage) && (!m_CurrentSlot || !m_CurrentSlot.m_InventoryStackSlot) || m_OnCraftingTable || Inventory3DManager.Get().m_CarriedItem == this)
                    {
                        m_WantedScale = m_InventoryLocalScale;
                    }
                    else if (m_CurrentSlot != null && (m_CurrentSlot.m_ParentType == ItemSlot.ParentType.FoodProcessor || m_CurrentSlot.m_ParentType == ItemSlot.ParentType.WaterCollector || m_CurrentSlot.m_ParentType == ItemSlot.ParentType.WaterFilter))
                    {
                        m_WantedScale = Vector3.one;
                    }
                    else if (m_CurrentSlot != null && !m_CurrentSlot.m_InventoryStackSlot)
                    {
                        m_WantedScale = m_InventoryLocalScale;
                    }
                    else if (m_Info != null && m_Info.IsArrow() && ((Arrow)(Item)this).m_Loaded)
                    {
                        m_WantedScale = Vector3.one;
                    }
                }

                if (m_WantedScale != transform.localScale)
                {
                    transform.localScale = m_WantedScale;
                    ReplSetDirty();
                }
            }
        }
示例#17
0
 public bool CanTrigger()
 {
     return(!this.m_Item || !this.m_Item.m_CurrentSlot || Inventory3DManager.Get().IsActive());
 }
示例#18
0
    private void ExecuteAction(HUDItem.Action action, Item item)
    {
        if (action != HUDItem.Action.Close && this.m_ItemReplacer != null)
        {
            item = this.m_ItemReplacer.ReplaceItem(true);
            this.m_ItemReplacer = null;
        }
        switch (action)
        {
        case HUDItem.Action.Close:
            this.m_Active = false;
            break;

        case HUDItem.Action.Take:
            if (item)
            {
                item.Take();
            }
            else if (this.m_PlantFruit)
            {
                this.m_PlantFruit.Take();
            }
            break;

        case HUDItem.Action.PickUp:
            item.PickUp(true);
            break;

        case HUDItem.Action.Eat:
            if (item)
            {
                item.Eat();
            }
            else if (this.m_PlantFruit)
            {
                this.m_PlantFruit.Eat();
            }
            break;

        case HUDItem.Action.Drink:
            if (item)
            {
                item.Drink();
            }
            else if (this.m_LiquidSource)
            {
                this.m_LiquidSource.Drink();
            }
            break;

        case HUDItem.Action.Harvest:
            Player.Get().HideWeapon();
            HarvestingSmallAnimalController.Get().SetItem(item);
            Player.Get().StartController(PlayerControllerType.HarvestingSmallAnimal);
            break;

        case HUDItem.Action.Craft:
            if (Player.Get().CanStartCrafting())
            {
                if (Player.Get().GetCurrentItem(Hand.Left) == item)
                {
                    Player.Get().SetWantedItem(Hand.Left, null, true);
                }
                else if (Player.Get().GetCurrentItem(Hand.Right) == item)
                {
                    Player.Get().SetWantedItem(Hand.Right, null, true);
                }
                else if (!item.m_CurrentSlot && item.m_InventorySlot && item.m_InventorySlot.m_Items.Count > 0)
                {
                    item.m_InventorySlot.RemoveItem(item, false);
                }
                else if (item.m_CurrentSlot && item.m_CurrentSlot.m_InventoryStackSlot)
                {
                    item.m_CurrentSlot.RemoveItem(item, false);
                }
                if (InventoryBackpack.Get().m_EquippedItem == item)
                {
                    InventoryBackpack.Get().m_EquippedItem = null;
                }
                InventoryBackpack.Get().RemoveItem(item, false);
                CraftingManager.Get().Activate();
                CraftingManager.Get().AddItem(item, true);
            }
            break;

        case HUDItem.Action.Fill:
            this.m_LiquidSource.TakeLiquid();
            break;

        case HUDItem.Action.Equip:
            Player.Get().Equip(item.m_CurrentSlot);
            break;

        case HUDItem.Action.Drop:
            if (CraftingManager.Get().gameObject.activeSelf&& CraftingManager.Get().ContainsItem(item))
            {
                CraftingManager.Get().RemoveItem(item);
            }
            if (!item.m_CurrentSlot && item.m_InventorySlot && item.m_InventorySlot.m_Items.Count > 0)
            {
                item.m_InventorySlot.RemoveItem(item, false);
            }
            else if (item.m_CurrentSlot && item.m_CurrentSlot.m_InventoryStackSlot)
            {
                item.m_CurrentSlot.RemoveItem(item, false);
            }
            if (InventoryBackpack.Get().m_EquippedItem == item)
            {
                InventoryBackpack.Get().m_EquippedItem = null;
            }
            InventoryBackpack.Get().RemoveItem(item, false);
            Inventory3DManager.Get().DropItem(item);
            break;

        case HUDItem.Action.Swap:
            item.Swap();
            break;

        case HUDItem.Action.Use:
        {
            Item currentItem = Player.Get().GetCurrentItem();
            if (currentItem)
            {
                InventoryBackpack.Get().InsertItem(currentItem, InventoryBackpack.Get().m_EquippedItemSlot, null, true, true, true, true, false);
                Player.Get().SetWantedItem((!currentItem.m_Info.IsBow()) ? Hand.Right : Hand.Left, null, true);
                if (Player.Get().m_ControllerToStart != PlayerControllerType.Unknown)
                {
                    Player.Get().StartControllerInternal();
                }
            }
            Player.Get().SetWantedItem(this.m_Item, true);
            break;
        }

        case HUDItem.Action.Spill:
            ((LiquidContainer)this.m_Item).Spill(-1f);
            break;
        }
    }
 private void UpdateBestTrigger()
 {
     if (HUDReadableItem.Get() != null && HUDReadableItem.Get().enabled)
     {
         this.ResetTrigger();
         return;
     }
     if (this.m_CameraMain == null)
     {
         this.ResetTrigger();
         this.m_CameraMain = Camera.main;
         return;
     }
     if (CutscenesManager.Get().IsCutscenePlaying())
     {
         this.ResetTrigger();
         return;
     }
     if (MakeFireController.Get().IsActive() && (MakeFireController.Get().ShouldBlockTriggers() || !Inventory3DManager.Get().gameObject.activeSelf))
     {
         this.ResetTrigger();
         return;
     }
     if (CraftingController.Get().IsActive() && CraftingController.Get().m_InProgress)
     {
         this.ResetTrigger();
         return;
     }
     if (this.m_Player.m_ActiveFightController && (this.m_Player.m_ActiveFightController.IsBlock() || this.m_Player.m_ActiveFightController.IsAttack()))
     {
         this.ResetTrigger();
         return;
     }
     if (VomitingController.Get().IsActive())
     {
         this.ResetTrigger();
         return;
     }
     if (HUDItem.Get().m_Active&& HUDItem.Get().m_Item)
     {
         this.SetBestTrigger(HUDItem.Get().m_Item, HUDItem.Get().m_Item.transform.position);
         return;
     }
     if (Inventory3DManager.Get().gameObject.activeSelf)
     {
         if (!Inventory3DManager.Get().m_FocusedItem)
         {
             this.ResetTrigger();
             return;
         }
         if (BodyInspectionController.Get().IsActive() && Inventory3DManager.Get().m_FocusedItem.IsStorage())
         {
             this.ResetTrigger();
             return;
         }
         this.SetBestTrigger(Inventory3DManager.Get().m_FocusedItem, Inventory3DManager.Get().m_FocusedItem.transform.position);
         return;
     }
     else
     {
         if (BodyInspectionController.Get().IsActive())
         {
             this.ResetTrigger();
             return;
         }
         if (Player.Get().m_Aim)
         {
             this.ResetTrigger();
             return;
         }
         if (HUDWheel.Get().m_Active)
         {
             this.ResetTrigger();
             return;
         }
         if (this.m_Animator.GetBool(Player.Get().m_CleanUpHash))
         {
             this.ResetTrigger();
             return;
         }
         if (this.m_Animator.GetBool(TriggerController.Get().m_BDrinkWater))
         {
             this.ResetTrigger();
             return;
         }
         if (WeaponSpearController.Get().IsActive() && WeaponSpearController.Get().m_ItemBody)
         {
             this.SetBestTrigger(WeaponSpearController.Get().m_ItemBody, WeaponSpearController.Get().m_ItemBody.transform.position);
             return;
         }
         TriggerController.s_AllPotentialTriggers.Clear();
         TriggerController.s_OffCrosshairTriggers.Clear();
         TriggerController.s_ColldersEnabledMap.Clear();
         Vector3         crossHairOrigin          = this.GetCrossHairOrigin();
         Vector3         position                 = Player.Get().transform.position;
         float           num                      = 0.8f;
         float           num2                     = -1f;
         float           num3                     = -1f;
         float           num4                     = float.MinValue;
         Vector3         vector                   = Vector3.zero;
         Vector3         vector2                  = Vector3.zero;
         TriggersManager triggersManager          = TriggersManager.Get();
         bool            flag                     = false;
         Trigger         trigger                  = null;
         Vector3         hit_pos                  = Vector3.zero;
         Trigger         trigger2                 = null;
         Vector3         hit_pos2                 = Vector3.zero;
         float           num5                     = float.MinValue;
         HashSet <Trigger> .Enumerator enumerator = triggersManager.GetActiveTriggers().GetEnumerator();
         Item currentItem = Player.Get().GetCurrentItem();
         while (enumerator.MoveNext())
         {
             Trigger trigger3 = enumerator.Current;
             if (trigger3 != null && trigger3.enabled && !trigger3.m_IsCut && trigger3.m_Initialized && trigger3.CanTrigger() && (!currentItem || currentItem.GetInfoID() != ItemID.Fire || trigger3.IsFIrecamp() || trigger3.IsCharcoalFurnace() || trigger3.IsForge()))
             {
                 Collider collider = null;
                 trigger3.gameObject.GetComponents <Collider>(TriggerController.s_ColliderCache);
                 if (TriggerController.s_ColliderCache.Count > 0)
                 {
                     collider = TriggerController.s_ColliderCache[0];
                 }
                 if (collider != null)
                 {
                     if (trigger3.CheckInsideCollider() && collider.bounds.Contains(this.m_CameraMain.transform.position) && trigger3.IsAdditionalTrigger() && (!trigger3.CheckDot() || num4 > num3))
                     {
                         hit_pos2 = collider.bounds.center;
                         trigger2 = trigger3;
                         num3     = num4;
                     }
                     float num6 = (trigger3.m_TriggerCheckRange > 0f) ? trigger3.m_TriggerCheckRange : this.m_Player.GetParams().GetTriggerCheckRange();
                     if (trigger3.CheckRange())
                     {
                         vector2 = ((collider != null) ? collider.ClosestPointOnBounds(position) : trigger3.gameObject.transform.position);
                         if (Vector3.Distance(position, vector2) > num6)
                         {
                             continue;
                         }
                     }
                     vector2 = ((collider != null) ? collider.bounds.center : trigger3.gameObject.transform.position);
                     vector  = vector2 - crossHairOrigin;
                     vector.Normalize();
                     if (trigger3.CheckDot())
                     {
                         num4 = Vector3.Dot(this.m_CameraMain.transform.forward, vector);
                         if (num4 < num || (trigger3.m_TriggerMaxDot > 0f && num4 < trigger3.m_TriggerMaxDot))
                         {
                             continue;
                         }
                     }
                     TriggerController.s_AllPotentialTriggers.Add(trigger3);
                     if (!trigger3.OnlyInCrosshair())
                     {
                         TriggerController.s_OffCrosshairTriggers.Add(trigger3);
                     }
                     TriggerController.s_ColldersEnabledMap[collider] = collider.enabled;
                     collider.enabled = true;
                     if (num6 > num5)
                     {
                         num5 = num6;
                     }
                 }
             }
         }
         Vector3 crossHairDir = this.GetCrossHairDir();
         int     num7         = (num5 > 0f) ? Physics.RaycastNonAlloc(crossHairOrigin, crossHairDir, TriggerController.s_RaycastHitCache, num5) : 0;
         if (num7 > 0)
         {
             TriggerController.s_CrosshairOrigin = crossHairOrigin;
             Array.Sort <RaycastHit>(TriggerController.s_RaycastHitCache, 0, num7, TriggerController.s_DistComparer);
             for (int i = 0; i < TriggerController.s_AllPotentialTriggers.Count; i++)
             {
                 Trigger  trigger4  = TriggerController.s_AllPotentialTriggers[i];
                 Collider collider2 = null;
                 trigger4.gameObject.GetComponents <Collider>(TriggerController.s_ColliderCache);
                 if (TriggerController.s_ColliderCache.Count > 0)
                 {
                     collider2 = TriggerController.s_ColliderCache[0];
                 }
                 if (collider2 != null)
                 {
                     for (int j = 0; j < num7; j++)
                     {
                         RaycastHit raycastHit = TriggerController.s_RaycastHitCache[j];
                         if (raycastHit.collider != null && !(raycastHit.collider.gameObject == base.gameObject) && !(raycastHit.collider == FistFightController.Get().m_RightHandCollider) && !(raycastHit.collider == FistFightController.Get().m_LeftHandCollider) && !(raycastHit.collider.gameObject == this.m_Proxy.m_Controller.gameObject))
                         {
                             GhostSlot ghostSlot = null;
                             raycastHit.collider.gameObject.GetComponents <GhostSlot>(TriggerController.s_GhostSlotCache);
                             if (TriggerController.s_GhostSlotCache.Count > 0)
                             {
                                 ghostSlot = TriggerController.s_GhostSlotCache[0];
                             }
                             if (!flag || ghostSlot != null || trigger4.IsAdditionalTrigger())
                             {
                                 if (collider2 == raycastHit.collider || trigger4.IsAdditionalCollider(raycastHit.collider))
                                 {
                                     if (trigger4.IsAdditionalTrigger())
                                     {
                                         if (!trigger4.CheckDot() || num4 > num3 || (trigger4.m_TriggerMaxDot > 0f && num4 >= trigger4.m_TriggerMaxDot))
                                         {
                                             hit_pos2 = raycastHit.point;
                                             trigger2 = trigger4;
                                             num3     = num4;
                                             break;
                                         }
                                         break;
                                     }
                                     else
                                     {
                                         if (trigger4.CheckDot() && num4 < num2 && (trigger4.m_TriggerMaxDot <= 0f || num4 < trigger4.m_TriggerMaxDot))
                                         {
                                             break;
                                         }
                                         hit_pos = raycastHit.point;
                                         trigger = trigger4;
                                         if (!trigger || !trigger.IsLiquidSource())
                                         {
                                             num2 = num4;
                                             break;
                                         }
                                         break;
                                     }
                                 }
                                 else
                                 {
                                     ITriggerThrough triggerThrough = null;
                                     raycastHit.collider.gameObject.GetComponents <ITriggerThrough>(TriggerController.s_TriggerThroughCache);
                                     if (TriggerController.s_TriggerThroughCache.Count > 0)
                                     {
                                         triggerThrough = TriggerController.s_TriggerThroughCache[0];
                                     }
                                     if (triggerThrough == null && !raycastHit.collider.gameObject.GetComponent <TriggerThrough>() && (!trigger || !trigger.IsLiquidSource() || !(trigger.gameObject == raycastHit.collider.gameObject)))
                                     {
                                         if (ghostSlot != null)
                                         {
                                             flag = true;
                                         }
                                         else
                                         {
                                             Item currentItem2 = this.m_Player.GetCurrentItem(Hand.Right);
                                             if (currentItem2 == null || !(currentItem2.gameObject == raycastHit.collider.gameObject))
                                             {
                                                 currentItem2 = this.m_Player.GetCurrentItem(Hand.Left);
                                                 if ((currentItem2 == null || !(currentItem2.gameObject == raycastHit.collider.gameObject)) && !(raycastHit.collider.gameObject == this.m_Proxy.m_Controller.gameObject))
                                                 {
                                                     Trigger trigger5 = null;
                                                     raycastHit.collider.gameObject.GetComponents <Trigger>(TriggerController.s_OtherTriggerCache);
                                                     if (TriggerController.s_OtherTriggerCache.Count > 0)
                                                     {
                                                         trigger5 = TriggerController.s_OtherTriggerCache[0];
                                                     }
                                                     if (trigger5 == null || !trigger5.TriggerThrough())
                                                     {
                                                         break;
                                                     }
                                                 }
                                             }
                                         }
                                     }
                                 }
                             }
                         }
                     }
                 }
             }
         }
         if (trigger == null || trigger.IsLiquidSource())
         {
             TriggerController.s_CrosshairDir    = crossHairDir;
             TriggerController.s_CrosshairOrigin = crossHairOrigin;
             TriggerController.s_OffCrosshairTriggers.Sort(TriggerController.s_DotComparer);
             bool flag2 = false;
             int  num8  = 0;
             while (num8 < TriggerController.s_OffCrosshairTriggers.Count && !flag2)
             {
                 Trigger  trigger6  = TriggerController.s_OffCrosshairTriggers[num8];
                 Collider collider3 = null;
                 trigger6.gameObject.GetComponents <Collider>(TriggerController.s_ColliderCache);
                 if (TriggerController.s_ColliderCache.Count > 0)
                 {
                     collider3 = TriggerController.s_ColliderCache[0];
                 }
                 if (collider3 != null)
                 {
                     float maxDistance = (trigger6.m_TriggerCheckRange > 0f) ? trigger6.m_TriggerCheckRange : this.m_Player.GetParams().GetTriggerCheckRange();
                     vector2 = ((collider3 != null) ? collider3.bounds.center : trigger6.gameObject.transform.position);
                     vector  = vector2 - crossHairOrigin;
                     vector.Normalize();
                     num7 = Physics.RaycastNonAlloc(crossHairOrigin, vector, TriggerController.s_RaycastHitCache, maxDistance);
                     if ((float)num7 > 0f)
                     {
                         TriggerController.s_CrosshairOrigin = crossHairOrigin;
                         Array.Sort <RaycastHit>(TriggerController.s_RaycastHitCache, 0, num7, TriggerController.s_DistComparer);
                         for (int k = 0; k < num7; k++)
                         {
                             RaycastHit raycastHit2 = TriggerController.s_RaycastHitCache[k];
                             if (!(raycastHit2.collider.gameObject == base.gameObject))
                             {
                                 GhostSlot ghostSlot2 = null;
                                 raycastHit2.collider.gameObject.GetComponents <GhostSlot>(TriggerController.s_GhostSlotCache);
                                 if (TriggerController.s_GhostSlotCache.Count > 0)
                                 {
                                     ghostSlot2 = TriggerController.s_GhostSlotCache[0];
                                 }
                                 if (!flag || ghostSlot2 != null || trigger6.IsAdditionalTrigger())
                                 {
                                     if (collider3 == raycastHit2.collider)
                                     {
                                         if (!trigger6.CheckDot() || num4 > num2 || (trigger6.m_TriggerMaxDot > 0f && num4 >= trigger6.m_TriggerMaxDot))
                                         {
                                             hit_pos = raycastHit2.point;
                                             trigger = trigger6;
                                             num2    = num4;
                                             flag2   = true;
                                             break;
                                         }
                                         break;
                                     }
                                     else
                                     {
                                         ITriggerThrough triggerThrough2 = null;
                                         raycastHit2.collider.gameObject.GetComponents <ITriggerThrough>(TriggerController.s_TriggerThroughCache);
                                         if (TriggerController.s_TriggerThroughCache.Count > 0)
                                         {
                                             triggerThrough2 = TriggerController.s_TriggerThroughCache[0];
                                         }
                                         if (triggerThrough2 == null && raycastHit2.collider.gameObject.layer != this.m_BalanceSpawnerLayer && (trigger == null || !trigger.IsLiquidSource() || !(trigger.gameObject == raycastHit2.collider.gameObject)))
                                         {
                                             if (ghostSlot2 != null)
                                             {
                                                 flag = true;
                                             }
                                             else
                                             {
                                                 Item currentItem3 = this.m_Player.GetCurrentItem(Hand.Right);
                                                 if (currentItem3 == null || !(currentItem3.gameObject == raycastHit2.collider.gameObject))
                                                 {
                                                     currentItem3 = this.m_Player.GetCurrentItem(Hand.Left);
                                                     if (currentItem3 == null || !(currentItem3.gameObject == raycastHit2.collider.gameObject))
                                                     {
                                                         Trigger trigger7 = null;
                                                         raycastHit2.collider.gameObject.GetComponents <Trigger>(TriggerController.s_OtherTriggerCache);
                                                         if (TriggerController.s_OtherTriggerCache.Count > 0)
                                                         {
                                                             trigger7 = TriggerController.s_OtherTriggerCache[0];
                                                         }
                                                         if (trigger7 == null || !trigger7.TriggerThrough())
                                                         {
                                                             if (trigger7 != null && TriggerController.s_OffCrosshairTriggers.Contains(trigger7))
                                                             {
                                                                 trigger = trigger7;
                                                                 hit_pos = raycastHit2.point;
                                                                 flag2   = true;
                                                                 break;
                                                             }
                                                             break;
                                                         }
                                                     }
                                                 }
                                             }
                                         }
                                     }
                                 }
                             }
                         }
                     }
                 }
                 num8++;
             }
         }
         Trigger trigger8 = null;
         if (trigger != this.m_BestTrigger.trigger && this.m_BestTrigger.trigger)
         {
             trigger8 = this.m_BestTrigger.trigger;
         }
         this.SetBestTrigger(trigger, hit_pos);
         if (trigger)
         {
             trigger.UpdateLayer();
         }
         if (trigger8)
         {
             trigger8.UpdateLayer();
         }
         if (this.m_AdditionalTrigger.trigger != trigger2)
         {
             if (trigger2 != this.m_AdditionalTrigger.trigger && this.m_AdditionalTrigger.trigger)
             {
                 trigger8 = this.m_AdditionalTrigger.trigger;
             }
             this.m_AdditionalTrigger.trigger = trigger2;
             this.m_AdditionalTrigger.actions.Clear();
             if (this.m_AdditionalTrigger.trigger)
             {
                 this.m_AdditionalTrigger.trigger.GetActions(this.m_AdditionalTrigger.actions);
             }
             this.m_AdditionalTrigger.hit_pos = hit_pos2;
             if (this.m_AdditionalTrigger.trigger)
             {
                 this.m_AdditionalTrigger.trigger.UpdateLayer();
             }
             if (trigger8)
             {
                 trigger8.UpdateLayer();
             }
         }
         foreach (KeyValuePair <Collider, bool> keyValuePair in TriggerController.s_ColldersEnabledMap)
         {
             Collider key = keyValuePair.Key;
             Dictionary <Collider, bool> .Enumerator enumerator2;
             keyValuePair = enumerator2.Current;
             key.enabled  = keyValuePair.Value;
         }
         return;
     }
 }
示例#20
0
    private void UpdateWoundSlots(SlotData data)
    {
        if (!Inventory3DManager.Get().isActiveAndEnabled || !BodyInspectionController.Get().IsActive())
        {
            data.obj.gameObject.SetActive(false);
            return;
        }
        if (GreenHellGame.IsPCControllerActive() && (Inventory3DManager.Get().m_CarriedItem == null || !data.slot.CanInsertItem(Inventory3DManager.Get().m_CarriedItem)))
        {
            data.obj.gameObject.SetActive(false);
            return;
        }
        BIWoundSlot biwoundSlot = (BIWoundSlot)data.slot;

        if (biwoundSlot == null || biwoundSlot.m_Injury == null)
        {
            data.obj.gameObject.SetActive(false);
            return;
        }
        if (biwoundSlot.m_Injury.m_Type == InjuryType.Leech)
        {
            data.obj.gameObject.SetActive(false);
            return;
        }
        if (!data.obj.gameObject.activeSelf)
        {
            data.obj.gameObject.SetActive(true);
        }
        Vector3 screenPoint = data.slot.GetScreenPoint();

        if (screenPoint.z <= 0f)
        {
            data.icon.enabled = false;
            return;
        }
        data.icon.rectTransform.position = screenPoint;
        if (biwoundSlot.GetInjury() != null && BodyInspectionController.Get() != null && BodyInspectionController.Get().enabled&& EnumTools.ConvertInjuryPlaceToLimb(biwoundSlot.GetInjury().m_Place) == HUDBodyInspection.Get().GetSelectedLimb() && biwoundSlot.GetInjury().m_Bandage == null && biwoundSlot.m_Maggots == null && biwoundSlot.GetInjury().m_ParentInjury == null)
        {
            data.icon.enabled       = true;
            this.m_SelectedSlotData = data;
            return;
        }
        data.icon.enabled = false;
    }
示例#21
0
 protected override void Awake()
 {
     base.Awake();
     this.m_InventoryManager = Inventory3DManager.Get();
 }
示例#22
0
    private void UpdateSlots(SlotData data)
    {
        bool flag = !Inventory3DManager.Get().m_CarriedItem || data.slot.CanInsertItem(Inventory3DManager.Get().m_CarriedItem);

        data.obj.gameObject.SetActive(flag);
        if (!flag)
        {
            return;
        }
        if (!data.slot.enabled)
        {
            data.icon.gameObject.SetActive(false);
            return;
        }
        Vector3 screenPoint = data.slot.GetScreenPoint();

        if (screenPoint.z <= 0f)
        {
            data.icon.gameObject.SetActive(false);
            return;
        }
        data.icon.rectTransform.position = screenPoint;
        if (data.slot.IsOccupied())
        {
            data.icon.gameObject.SetActive(false);
            return;
        }
        if (data.slot.IsArmorSlot())
        {
            if (!BodyInspectionController.Get().IsActive())
            {
                data.icon.gameObject.SetActive(false);
                return;
            }
            if (!Inventory3DManager.Get().IsActive() || Inventory3DManager.Get().m_CarriedItem == null || !Inventory3DManager.Get().m_CarriedItem.m_Info.IsArmor())
            {
                data.icon.gameObject.SetActive(false);
                return;
            }
        }
        Color color;

        if (Inventory3DManager.Get().m_SelectedSlot == data.slot)
        {
            color = this.m_SelectedColor;
        }
        else
        {
            color = this.m_NormalColor;
            if (data.slot.m_ItemParent && (data.slot.m_ItemParent.m_InInventory || data.slot.m_ItemParent.m_InStorage))
            {
                color.a = 1f;
            }
            else if (!data.slot.m_BackpackSlot)
            {
                float b = Vector3.Distance(data.slot.GetCheckPosition(), Player.Get().transform.position);
                color.a = CJTools.Math.GetProportionalClamp(0f, 0.6f, b, ItemSlot.s_DistToActivate, ItemSlot.s_DistToActivate * 0.5f);
            }
        }
        if (color.a <= 0f)
        {
            data.icon.gameObject.SetActive(false);
            return;
        }
        data.icon.color = color;
        data.icon.gameObject.SetActive(true);
        data.icon.rectTransform.localScale = Vector2.one;
        Vector2 zero = Vector2.zero;

        zero.Set(screenPoint.x, screenPoint.y);
        Vector2 zero2 = Vector2.zero;

        zero2.Set((float)Screen.width * 0.5f, (float)Screen.height * 0.5f);
        float num = Vector2.Distance(zero, zero2);

        if (data.slot.m_CanSelect && color.a > 0f && num < this.m_MaxDistToSelect && num < this.m_ClosestDistTemp)
        {
            this.m_SelectedSlotData = data;
            this.m_ClosestDistTemp  = num;
        }
        this.m_VisibleSlots.Add(data);
    }
示例#23
0
 private void Update()
 {
     if (this.m_KillItem.m_InInventory || Player.Get().GetCurrentItem(Hand.Right) == this.m_KillItem || Inventory3DManager.Get().m_CarriedItem == this.m_KillItem)
     {
         this.m_Item.Take();
         Animator componentDeepChild = General.GetComponentDeepChild <Animator>(this.m_Item.gameObject);
         if (componentDeepChild != null)
         {
             componentDeepChild.SetBool("Backpack", true);
         }
         UnityEngine.Object.Destroy(this);
         return;
     }
     if (this.m_KillItemSpeed >= 0.5f)
     {
         this.m_KillItemSpeed -= this.m_KillItemSpeed * Time.deltaTime * 0.5f;
         if (this.m_KillItemSpeed <= 0.5f)
         {
             return;
         }
         Vector3    normalized = (this.m_KillItem.m_DamagerStart.position - this.m_KillItem.m_DamagerEnd.position).normalized;
         RaycastHit raycastHit;
         if (Physics.Raycast(this.m_KillItem.m_DamagerStart.position, normalized, out raycastHit, this.m_KillItemSpeed * Time.deltaTime))
         {
             this.m_KillItemSpeed = 0f;
         }
         else
         {
             this.m_KillItem.transform.position += normalized * this.m_KillItemSpeed * Time.deltaTime;
         }
     }
     else
     {
         Quaternion b = Quaternion.LookRotation(this.m_KillItem.transform.forward.GetNormalized2D(), (this.m_KillItem.transform.up.y <= 0f) ? (-Vector3.up) : Vector3.up);
         this.m_KillItem.transform.rotation = Quaternion.Slerp(this.m_KillItem.transform.rotation, b, Time.deltaTime * 0.5f);
         if (this.m_WaterBoxCollider && this.m_KillItem.transform.position.y >= this.m_WaterBoxCollider.bounds.max.y)
         {
             Vector3 position = this.m_KillItem.transform.position;
             position.y = this.m_WaterBoxCollider.bounds.max.y;
             this.m_KillItem.transform.position = position;
         }
         else
         {
             this.m_KillItem.transform.position += Vector3.up * Time.deltaTime * 0.2f;
         }
     }
     if (this.m_Item.m_InInventory || Inventory3DManager.Get().m_CarriedItem == this.m_Item)
     {
         this.m_Item.StaticPhxRequestRemove();
         UnityEngine.Object.Destroy(this);
         this.m_KillItem.Take();
     }
     else
     {
         base.transform.parent        = this.m_KillItem.transform;
         base.transform.localRotation = this.m_LocalRot;
         base.transform.parent        = null;
         Vector3 b2 = (this.m_KillItem.m_DamagerStart.position - this.m_KillItem.m_DamagerEnd.position).normalized * -0.07f;
         base.transform.position = this.m_KillItem.m_DamagerStart.position + b2;
     }
 }
示例#24
0
    public override void UpdateAfterCamera()
    {
        base.UpdateAfterCamera();
        if (this.m_ActiveSlots.Count == 0 || !base.enabled)
        {
            return;
        }
        this.m_ClosestDistTemp = float.MaxValue;
        SlotData selectedSlotData = this.m_SelectedSlotData;

        this.m_SelectedSlotData = null;
        this.m_VisibleSlots.Clear();
        foreach (SlotData slotData in this.m_ActiveSlots)
        {
            if (slotData.slot.IsBIWoundSlot())
            {
                this.UpdateWoundSlots(slotData);
            }
            else
            {
                this.UpdateSlots(slotData);
            }
        }
        if (this.m_SelectedSlotData == null && Inventory3DManager.Get().IsActive() && Inventory3DManager.Get().m_ActivePocket != BackpackPocket.Left && Player.Get().GetCurrentItem(Hand.Right) && Player.Get().GetCurrentItem(Hand.Right).m_Info.IsFishingRod())
        {
            FishingRod component = Player.Get().GetCurrentItem(Hand.Right).gameObject.GetComponent <FishingRod>();
            ItemSlot   y;
            if (!component.m_Hook)
            {
                y = component.m_HookSlot;
            }
            else
            {
                y = component.m_Hook.m_BaitSlot;
            }
            foreach (SlotData slotData2 in this.m_VisibleSlots)
            {
                if (slotData2.slot == y)
                {
                    this.m_SelectedSlotData = slotData2;
                    break;
                }
            }
        }
        if (this.m_SelectedSlotData != null)
        {
            this.m_SelectedSlotData.icon.rectTransform.localScale = Vector2.one * 2f;
            if (this.m_SelectedSlotData.add_icon)
            {
                this.m_SelectedSlotData.add_icon.rectTransform.localScale = Vector2.one * 0.5f;
            }
            Color color = this.m_SelectedSlotData.icon.color;
            color.a *= 1.5f;
            this.m_SelectedSlotData.icon.color = color;
        }
        if (this.m_SelectedSlotData != selectedSlotData)
        {
            HUDItem.Get().OnChangeSelectedSlot(this.m_SelectedSlotData);
        }
    }
示例#25
0
 private bool CanAttack()
 {
     return(!MainLevel.Instance.IsPause() && !this.m_Player.IsDead() && !SwimController.Get().IsActive() && !HUDWheel.Get().enabled&& !BodyInspectionController.Get().IsActive() && !WatchController.Get().IsActive() && !NotepadController.Get().IsActive() && !MapController.Get().IsActive() && this.m_ActionAllowed && !this.m_Player.GetRotationBlocked() && !Inventory3DManager.Get().gameObject.activeSelf&& !HitReactionController.Get().IsActive() && !base.IsBlock() && this.m_CurrentParam != 6 && this.m_CurrentParam != 8);
 }
示例#26
0
 protected override bool ShouldShow()
 {
     return(!NotepadController.Get().IsActive() && !MapController.Get().IsActive() && !Inventory3DManager.Get().gameObject.activeSelf);
 }
示例#27
0
 protected virtual bool CanBlock()
 {
     return(!PlayerConditionModule.Get().IsStaminaCriticalLevel() && !SwimController.Get().IsActive() && !Inventory3DManager.Get().gameObject.activeSelf&& !WatchController.Get().IsActive() && !MapController.Get().IsActive() && !TriggerController.Get().IsGrabInProgress() && !Player.Get().m_Aim);
 }
示例#28
0
 protected override bool ShouldShow()
 {
     return(!TriggerController.Get().IsGrabInProgress() && ((this.IsExpanded() && this.m_TriggerType == HUDTrigger.TriggerType.Normal) || (this.GetTrigger() && this.GetTrigger().CanTrigger() && (!Inventory3DManager.Get().IsActive() || !Inventory3DManager.Get().m_CarriedItem) && (this.m_TriggerType == HUDTrigger.TriggerType.Normal || !Inventory3DManager.Get().gameObject.activeSelf))));
 }
示例#29
0
    private void OnSetState()
    {
        this.m_StartStateTime = Time.time;
        switch (this.m_State)
        {
        case MakeFireController.State.None:
            if (this.m_Kindling)
            {
                UnityEngine.Object.Destroy(this.m_Kindling.gameObject);
            }
            if (this.m_FireTool)
            {
                if (this.m_FireTool.m_Animator.isInitialized)
                {
                    this.m_FireTool.m_Animator.SetBool(this.m_ToolAnimHash, false);
                }
                this.m_FireTool.m_Light.enabled    = false;
                this.m_FireTool.m_Emission.enabled = false;
                this.m_FireTool.m_KindlingSlot.Deactivate();
                this.m_FireTool.m_KindlingSlot.gameObject.SetActive(false);
                if (this.m_FireTool.m_AnimationVis)
                {
                    this.m_FireTool.m_AnimationVis.SetActive(false);
                }
                if (this.m_FireTool.m_NormalVis)
                {
                    this.m_FireTool.m_NormalVis.SetActive(true);
                }
                this.m_FireTool = null;
            }
            if (this.m_Tool)
            {
                this.m_Tool.StaticPhxRequestRemove();
                this.m_Tool.OnRemovedFromHand();
                this.m_Tool = null;
            }
            if (this.m_Animator.isInitialized)
            {
                this.m_Animator.SetBool(this.m_PlayerIdleAnimHash, false);
                this.m_Animator.SetBool(this.m_PlayerAnimHash, false);
                this.m_Animator.SetBool(this.m_SuccessHash, false);
                this.m_Animator.SetBool(this.m_FailHash, false);
            }
            if (this.m_ParticleObj)
            {
                ParticlesManager.Get().Remove(this.m_ParticleObj);
                this.m_ParticleObj = null;
            }
            this.m_FXSpawned = false;
            this.m_Player.UnblockMoves();
            this.m_Player.UnblockRotation();
            break;

        case MakeFireController.State.WaitingForKindling:
            this.m_FireLevel = 0f;
            this.m_Tool      = (ItemTool)this.m_Player.GetCurrentItem(Hand.Right);
            DebugUtils.Assert(this.m_Tool != null, "[MakeFireController:OnEnable] ERROR - Currentitem is not a Fire Tool!", true, DebugUtils.AssertType.Info);
            this.m_Tool.ItemsManagerUnregister();
            this.m_FireTool = this.m_Tool.GetComponent <FireTool>();
            DebugUtils.Assert(this.m_FireTool != null, "[MakeFireController:OnEnable] ERROR - Missing FireTool component!", true, DebugUtils.AssertType.Info);
            this.m_FireTool.m_KindlingSlot.gameObject.SetActive(true);
            this.m_FireTool.m_KindlingSlot.Activate();
            this.m_Tool.StaticPhxRequestAdd();
            if (this.m_FireTool.m_AnimationVis)
            {
                this.m_FireTool.m_AnimationVis.SetActive(true);
            }
            if (this.m_FireTool.m_NormalVis)
            {
                this.m_FireTool.m_NormalVis.SetActive(false);
            }
            this.m_Player.BlockMoves();
            this.m_Player.BlockRotation();
            this.m_Animator.CrossFadeInFixedTime(this.m_PlayerIdleAnimHash, 0.25f, this.m_SpineLayerIndex);
            this.m_Animator.CrossFadeInFixedTime(this.m_PlayerIdleAnimHash, 0.25f, this.m_BaseLayerIndex);
            this.m_Animator.SetBool(this.m_PlayerIdleAnimHash, true);
            this.m_Animator.SetBool(this.m_PlayerAnimHash, false);
            this.m_Animator.SetBool(this.m_SuccessHash, false);
            this.m_Animator.SetBool(this.m_FailHash, false);
            this.m_Tool.OnWaitingForKindling();
            break;

        case MakeFireController.State.Game:
            PlayerSanityModule.Get().OnWhispersEvent(PlayerSanityModule.WhisperType.StartFire);
            this.m_Tool.OnStartMakeFireGame();
            this.m_Animator.CrossFadeInFixedTime(this.m_PlayerAnimHash, 0.25f, this.m_SpineLayerIndex);
            this.m_Animator.CrossFadeInFixedTime(this.m_PlayerAnimHash, 0.25f, this.m_BaseLayerIndex);
            this.m_Animator.SetBool(this.m_PlayerAnimHash, true);
            this.m_Animator.SetBool(this.m_PlayerIdleAnimHash, false);
            this.m_FireTool.m_Animator.SetBool(this.m_ToolAnimHash, true);
            this.m_FireTool.m_KindlingSlot.gameObject.SetActive(false);
            this.m_FireTool.m_KindlingSlot.Deactivate();
            this.m_Kindling.enabled = false;
            Inventory3DManager.Get().Deactivate();
            this.CalcStaminaConsumption();
            this.PlaySound();
            break;

        case MakeFireController.State.Fail:
            this.m_Tool.OnFailMakeFireGame();
            this.m_Animator.SetBool(this.m_FailHash, true);
            ParticlesManager.Get().Remove(this.m_ParticleObj);
            this.m_ParticleObj = null;
            this.m_FireTool.m_Animator.SetBool(this.m_ToolAnimHash, false);
            this.StopSound();
            HintsManager.Get().ShowHint("MakeFire_Fail", 10f);
            break;

        case MakeFireController.State.Success:
            Skill.Get <MakeFireSkill>().OnSkillAction();
            ParticlesManager.Get().Remove(this.m_ParticleObj);
            this.m_ParticleObj = null;
            this.m_Tool.OnSuccessMakeFireGame();
            this.m_Animator.SetBool(this.m_SuccessHash, true);
            this.m_FireTool.m_Animator.SetBool(this.m_ToolAnimHash, false);
            this.StopSound();
            break;
        }
    }
示例#30
0
    private void UpdateActions()
    {
        Trigger trigger = this.GetTrigger();

        if (!trigger || !trigger.CanExecuteActions() || this.IsExpanded())
        {
            for (int i = 0; i < this.m_Actions.Length; i++)
            {
                this.m_KeyFrames[i].gameObject.SetActive(false);
                this.m_Keys[i].gameObject.SetActive(false);
                this.m_Actions[i].gameObject.SetActive(false);
                if (this.m_MouseRMBIcon[i])
                {
                    this.m_MouseRMBIcon[i].gameObject.SetActive(false);
                }
            }
            return;
        }
        this.m_TriggerActions.Clear();
        if (!this.IsExpanded())
        {
            if (Inventory3DManager.Get().gameObject.activeSelf)
            {
                Item item = (!trigger.IsItem()) ? null : ((Item)trigger);
                if (item && item.m_OnCraftingTable)
                {
                    this.m_TriggerActions.Add(TriggerAction.TYPE.Remove);
                }
                else
                {
                    this.m_TriggerActions.Add(TriggerAction.TYPE.InventoryExpand);
                }
            }
            else
            {
                trigger.GetActions(this.m_TriggerActions);
            }
        }
        Vector3 position = Vector3.zero;
        int     num      = 0;

        while (num < this.m_TriggerActions.Count && num < 2)
        {
            this.m_KeyFrames[num].gameObject.SetActive(true);
            this.m_Keys[num].gameObject.SetActive(true);
            this.m_Actions[num].gameObject.SetActive(true);
            if (this.m_MouseRMBIcon[num])
            {
                this.m_MouseRMBIcon[num].gameObject.SetActive(false);
            }
            this.m_Keys[num].text    = string.Empty;
            this.m_Actions[num].text = string.Empty;
            TriggerAction.TYPE action          = this.m_TriggerActions[num];
            InputActionData    inputActionData = InputsManager.Get().GetInputActionData(action);
            if (inputActionData != null)
            {
                if (inputActionData.m_KeyCode == KeyCode.Mouse1)
                {
                    if (this.m_MouseRMBIcon[num])
                    {
                        this.m_MouseRMBIcon[num].gameObject.SetActive(true);
                        this.m_KeyFrames[num].gameObject.SetActive(false);
                    }
                    this.m_Keys[num].gameObject.SetActive(false);
                }
                else
                {
                    Text text = this.m_Keys[num];
                    text.text += inputActionData.m_KeyCode.ToString();
                }
                if (inputActionData.m_Hold > 0f)
                {
                    Text text2 = this.m_Actions[num];
                    text2.text = text2.text + GreenHellGame.Instance.GetLocalization().Get("HUD_Trigger_Hold") + " ";
                }
                Text text3 = this.m_Actions[num];
                text3.text += GreenHellGame.Instance.GetLocalization().Get(TriggerAction.GetText(action));
            }
            else
            {
                this.m_Actions[num].text = GreenHellGame.Instance.GetLocalization().Get(TriggerAction.GetText(action));
            }
            if (num == 0)
            {
                TextGenerationSettings generationSettings = this.m_Actions[num].GetGenerationSettings(this.m_Actions[num].rectTransform.rect.size);
                float width = ((RectTransform)HUDManager.Get().m_CanvasGameObject.transform).rect.width;
                float x     = ((RectTransform)HUDManager.Get().m_CanvasGameObject.transform).localScale.x;
                generationSettings.scaleFactor = x;
                float preferredWidth = this.m_TextGen.GetPreferredWidth(this.m_Actions[num].text, generationSettings);
                position    = this.m_KeyFrames[num].rectTransform.position;
                position.x += this.m_KeyFrames[num].rectTransform.rect.width * 0.5f * x;
                position.x += preferredWidth + width * x * 0.01f;
                position.x += this.m_KeyFrames[num].rectTransform.rect.width * x;
            }
            else if (num == 1 && this.m_KeyFrameParents[num] != null)
            {
                this.m_KeyFrameParents[num].position = position;
            }
            num++;
        }
        for (int j = this.m_TriggerActions.Count; j < this.m_Actions.Length; j++)
        {
            this.m_KeyFrames[j].gameObject.SetActive(false);
            this.m_Keys[j].gameObject.SetActive(false);
            this.m_Actions[j].gameObject.SetActive(false);
            if (this.m_MouseRMBIcon[j] != null)
            {
                this.m_MouseRMBIcon[j].gameObject.SetActive(false);
            }
        }
    }