Exemplo n.º 1
0
        protected override void DoEffect(PlayerController user)
        {
            if (user.CurrentRoom == null)
            {
                return;
            }
            base.DoEffect(user);
            try
            {
                float curse = user.stats.GetStatValue(PlayerStats.StatType.Curse);
                LootEngine.DoDefaultPurplePoof(user.specRigidbody.UnitCenter);
                if (curse < 1)
                {
                    LootEngine.SpawnItem(PickupObjectDatabase.GetById(GlobalItemIds.Junk).gameObject, user.specRigidbody.UnitCenter, Vector2.zero, 1);
                    return;
                }
                if (curse < 2)
                {
                    Chest chest = GameManager.Instance.RewardManager.D_Chest;
                    SpawnJamChest(chest, user);
                    return;
                }
                if (curse < 3)
                {
                    Chest chest = GameManager.Instance.RewardManager.C_Chest;
                    SpawnJamChest(chest, user);
                    return;
                }
                if (curse < 5)
                {
                    Chest chest = GameManager.Instance.RewardManager.B_Chest;
                    SpawnJamChest(chest, user);
                    return;
                }
                if (curse < 7)
                {
                    Chest chest = GameManager.Instance.RewardManager.A_Chest;
                    SpawnJamChest(chest, user);
                    return;
                }
                if (curse < 9)
                {
                    Chest chest = GameManager.Instance.RewardManager.S_Chest;
                    SpawnJamChest(chest, user);
                    return;
                }

                Chest rainbowChest = GameManager.Instance.RewardManager.Rainbow_Chest;
                SpawnJamChest(rainbowChest, user);
                if (curse >= 15)
                {
                    LootEngine.SpawnItem(PickupObjectDatabase.GetById(GlobalItemIds.GoldJunk).gameObject, user.specRigidbody.UnitCenter, Vector2.zero, 1);
                    return;
                }
            } catch (Exception lerror)
            {
                ETGModConsole.Log(lerror.ToString());
            }
        }
Exemplo n.º 2
0
        private void RerollItem(DebrisObject debris)
        {
            int          checkLimit   = 0;
            PickupObject targetedItem = debris.gameObject.GetComponent <PickupObject>();

            if (targetedItem != null)
            {
                ItemQuality  targetTier               = targetedItem.quality;
                int          chanceToDowngrade        = 10;
                int          chanceToUpgrade          = 80;
                ItemQuality  newItemQuality           = targetTier;
                PickupObject newItemObject            = PickupObjectDatabase.GetByName("cel:test_item");
                int          RollToCheckUpgradeStatus = UnityEngine.Random.Range(0, 101);
                if (RollToCheckUpgradeStatus <= chanceToDowngrade && targetTier != ItemQuality.D)
                {
                    newItemQuality = targetTier - 1;
                }
                else if (RollToCheckUpgradeStatus >= chanceToUpgrade && targetTier != ItemQuality.S)
                {
                    newItemQuality = targetTier + 1;
                }
                GenericLootTable lootTableItems = GameManager.Instance.RewardManager.ItemsLootTable;

                if (targetedItem is PassiveItem)
                {
                    do
                    {
                        newItemObject = LootEngine.GetItemOfTypeAndQuality <PassiveItem>(newItemQuality, lootTableItems);
                        checkLimit++;
                    } while (newItemObject.PickupObjectId == targetedItem.PickupObjectId && checkLimit < 10);
                }
                else if (targetedItem is PlayerItem)
                {
                    do
                    {
                        newItemObject = LootEngine.GetItemOfTypeAndQuality <PlayerItem>(newItemQuality, lootTableItems);
                        checkLimit++;
                    } while (newItemObject.PickupObjectId == targetedItem.PickupObjectId && checkLimit < 10);
                }

                if (UnityEngine.Random.Range(0, 101) <= 1)
                {
                    Chest rainbow_Chest = GameManager.Instance.RewardManager.Rainbow_Chest;
                    Chest chest2        = Chest.Spawn(rainbow_Chest, targetedItem.sprite.WorldCenter.ToIntVector2(VectorConversions.Round));
                    chest2.BecomeGlitchChest();
                    chest2.sprite.renderer.material.shader = ShaderCache.Acquire("Brave/Internal/RainbowChestShader");

                    chest2.RegisterChestOnMinimap(chest2.GetAbsoluteParentRoom());
                }
                else
                {
                    LootEngine.DoDefaultPurplePoof(targetedItem.sprite.WorldCenter);
                    LootEngine.SpawnItem(newItemObject.gameObject, targetedItem.sprite.WorldCenter, Vector2.zero, 0);
                }
                Destroy(targetedItem.gameObject);
            }
        }
Exemplo n.º 3
0
 private void GetRidOfBowler()
 {
     if (this.m_bowlerInstance)
     {
         LootEngine.DoDefaultPurplePoof(this.m_bowlerInstance.GetComponent <tk2dBaseSprite>().WorldCenter, false);
         UnityEngine.Object.Destroy(this.m_bowlerInstance);
         this.m_bowlerInstance = null;
         AkSoundEngine.PostEvent("Stop_SND_OBJ", base.gameObject);
     }
 }
Exemplo n.º 4
0
 private void Start()
 {
     m_StartRoom = aiActor.GetAbsoluteParentRoom();
     //base.aiActor.HasBeenEngaged = true;
     base.aiActor.healthHaver.OnPreDeath += (obj) =>
     {
         LootEngine.DoDefaultPurplePoof(aiActor.sprite.WorldBottomCenter);
         AkSoundEngine.PostEvent("Play_AGUNIM_VO_FIGHT_LAUGH_02", base.aiActor.gameObject);
     };
     this.aiActor.knockbackDoer.SetImmobile(true, "laugh");
 }
Exemplo n.º 5
0
            protected override IEnumerator Top()
            {
                PlayerController player = GameManager.Instance.PrimaryPlayer;

                LootEngine.DoDefaultPurplePoof(player.sprite.WorldBottomCenter);
                AkSoundEngine.PostEvent("Play_AGUNIM_VO_FIGHT_LAUGH_02", this.BulletBank.aiActor.gameObject);
                IntVector2 meceea = new IntVector2(this.BulletBank.aiActor.GetAbsoluteParentRoom().GetRandomAvailableCellDumb().x, this.BulletBank.aiActor.GetAbsoluteParentRoom().GetRandomAvailableCellDumb().y);

                this.TeleportToPoint(meceea.ToCenterVector2(), false);
                yield break;
            }
Exemplo n.º 6
0
 public void Start()
 {
     m_StartRoom = aiActor.GetAbsoluteParentRoom();
     //base.aiActor.HasBeenEngaged = true;
     base.aiActor.healthHaver.OnPreDeath += (obj) =>
     {
         LootEngine.DoDefaultPurplePoof(aiActor.sprite.WorldBottomCenter);
     };
     this.aiActor.knockbackDoer.SetImmobile(true, "laugh");
     base.aiActor.healthHaver.OnDamaged += (float resultValue, float maxValue, CoreDamageTypes damageTypes, DamageCategory damageCategory, Vector2 damageDirection) =>
     {
         if ((resultValue > base.aiActor.healthHaver.GetCurrentHealth()))
         {
             Instantiate <GameObject>(EasyVFXDatabase.MachoBraceDustUpVFX, aiActor.sprite.WorldBottomCenter, Quaternion.identity);
         }
     };
     this.aiActor.knockbackDoer.SetImmobile(true, "LAUGH!");
 }
Exemplo n.º 7
0
 private void Start()
 {
     m_StartRoom = aiActor.GetAbsoluteParentRoom();
     //base.aiActor.HasBeenEngaged = true;
     base.aiActor.healthHaver.OnDamaged += (float resultValue, float maxValue, CoreDamageTypes damageTypes, DamageCategory damageCategory, Vector2 damageDirection) =>
     {
         LootEngine.DoDefaultPurplePoof(aiActor.sprite.WorldBottomCenter);
         IntVector2 targetPoint = new IntVector2(base.aiActor.GetAbsoluteParentRoom().GetRandomAvailableCellDumb().x, base.aiActor.GetAbsoluteParentRoom().GetRandomAvailableCellDumb().y);
         base.aiActor.specRigidbody.Position        = new Position(targetPoint);
         base.aiActor.gameObject.transform.position = targetPoint.ToVector3();
         this.aiActor.specRigidbody.Reinitialize();
         if ((resultValue < base.aiActor.healthHaver.GetCurrentHealth()))
         {
             LootEngine.DoDefaultPurplePoof(targetPoint.ToVector2());
         }
     };
     this.aiActor.knockbackDoer.SetImmobile(true, "LAUGH!");
 }
Exemplo n.º 8
0
        protected override void DoEffect(PlayerController user)
        {
            int bighead = UnityEngine.Random.Range(1, 11);

            if (bighead <= 9)
            {
                if (randomActiveEnemy != randomActiveEnemy.healthHaver.IsBoss)
                {
                    RoomHandler absoluteRoom = base.transform.position.GetAbsoluteRoom();
                    randomActiveEnemy = absoluteRoom.GetRandomActiveEnemy(false);
                    LootEngine.DoDefaultPurplePoof(randomActiveEnemy.CenterPosition, true);
                    randomActiveEnemy.EraseFromExistenceWithRewards();
                }
            }
            if (bighead == 10)
            {
                LastOwner.healthHaver.ApplyDamage(1, Vector2.zero, "Life's Lemon", CoreDamageTypes.None, DamageCategory.Normal, true, null, false);
            }
        }
Exemplo n.º 9
0
        private IEnumerator HandleBoxPop(FlippableCover box)
        {
            float elapsed  = 0f;
            float duration = box.spriteAnimator.GetClipByName("moving_box_out").BaseClipLength;

            box.spriteAnimator.Play("moving_box_out");
            while (elapsed < duration)
            {
                elapsed += BraveTime.DeltaTime;
                float t = Mathf.SmoothStep(0f, 1f, elapsed / duration);
                if (box.outlineNorth)
                {
                    box.outlineNorth.GetComponent <tk2dSprite>().scale = Vector3.Lerp(Vector3.one, Vector3.zero, t);
                }
                if (box.outlineEast)
                {
                    box.outlineEast.GetComponent <tk2dSprite>().scale = Vector3.Lerp(Vector3.one, Vector3.zero, t);
                }
                yield return(null);
            }
            LootEngine.DoDefaultPurplePoof(box.specRigidbody.UnitBottomCenter, false);
            Destroy(box.gameObject);
            yield break;
        }
Exemplo n.º 10
0
            // Token: 0x06008129 RID: 33065 RVA: 0x00333610 File Offset: 0x00331810
            private IEnumerator HandleTeleportToPoint(Vector2 targetPoint, GameObject departureVFXPrefab, GameObject arrivalVFX1Prefab, GameObject arrivalVFX2Prefab, PlayerController teleporter)
            {
                teleporter.healthHaver.IsVulnerable = false;
                CameraController cameraController = GameManager.Instance.MainCameraController;
                Vector2          offsetVector     = cameraController.transform.position - teleporter.transform.position;

                offsetVector -= cameraController.GetAimContribution();
                Minimap.Instance.ToggleMinimap(false, false);
                cameraController.SetManualControl(true, false);
                cameraController.OverridePosition = cameraController.transform.position;
                teleporter.CurrentInputState      = PlayerInputState.NoInput;
                yield return(new WaitForSeconds(0.1f));

                teleporter.ToggleRenderer(false, "arbitrary teleporter.");
                teleporter.ToggleGunRenderers(false, "arbitrary teleporter.");
                teleporter.ToggleHandRenderers(false, "arbitrary teleporter.");
                if (departureVFXPrefab != null)
                {
                    GameObject gameObject = UnityEngine.Object.Instantiate <GameObject>(departureVFXPrefab);
                    gameObject.GetComponent <tk2dBaseSprite>().PlaceAtLocalPositionByAnchor(teleporter.specRigidbody.UnitBottomCenter + new Vector2(0f, -0.5f), tk2dBaseSprite.Anchor.LowerCenter);
                    gameObject.transform.position = gameObject.transform.position.Quantize(0.0625f);
                    gameObject.GetComponent <tk2dBaseSprite>().UpdateZDepth();
                }
                yield return(new WaitForSeconds(0.4f));

                Pixelator.Instance.FadeToBlack(0.1f, false, 0f);
                yield return(new WaitForSeconds(0.1f));

                teleporter.specRigidbody.Position = new Position(targetPoint);
                if (GameManager.Instance.CurrentGameType == GameManager.GameType.COOP_2_PLAYER)
                {
                    cameraController.OverridePosition = cameraController.GetIdealCameraPosition();
                }
                else
                {
                    cameraController.OverridePosition = (targetPoint + offsetVector).ToVector3ZUp(0f);
                }
                Pixelator.Instance.MarkOcclusionDirty();
                if (arrivalVFX1Prefab != null)
                {
                    GameObject gameObject2 = UnityEngine.Object.Instantiate <GameObject>(arrivalVFX1Prefab);
                    gameObject2.transform.position = targetPoint;
                    gameObject2.transform.position = gameObject2.transform.position.Quantize(0.0625f);
                }
                Pixelator.Instance.FadeToBlack(0.1f, true, 0f);
                yield return(null);

                cameraController.SetManualControl(false, true);
                yield return(new WaitForSeconds(0.75f));

                if (arrivalVFX2Prefab != null)
                {
                    GameObject gameObject3 = UnityEngine.Object.Instantiate <GameObject>(arrivalVFX2Prefab);
                    gameObject3.GetComponent <tk2dBaseSprite>().PlaceAtLocalPositionByAnchor(teleporter.specRigidbody.UnitBottomCenter + new Vector2(0f, -0.5f), tk2dBaseSprite.Anchor.LowerCenter);
                    gameObject3.transform.position = gameObject3.transform.position.Quantize(0.0625f);
                    gameObject3.GetComponent <tk2dBaseSprite>().UpdateZDepth();
                }
                teleporter.DoVibration(Vibration.Time.Normal, Vibration.Strength.Medium);
                yield return(new WaitForSeconds(0.25f));

                LootEngine.DoDefaultPurplePoof(teleporter.sprite.WorldBottomCenter);
                teleporter.ToggleRenderer(true, "arbitrary teleporter.");
                teleporter.ToggleGunRenderers(true, "arbitrary teleporter.");
                teleporter.ToggleHandRenderers(true, "arbitrary teleporter.");
                PhysicsEngine.Instance.RegisterOverlappingGhostCollisionExceptions(teleporter.specRigidbody, null, false);
                teleporter.CurrentInputState        = PlayerInputState.AllInput;
                teleporter.healthHaver.IsVulnerable = true;
                yield break;
            }
Exemplo n.º 11
0
        private void DoNoValidTargetPuff(PlayerController player)
        {
            Vector2 pos = (UnityEngine.Random.insideUnitCircle * 3) + player.CenterPosition;

            LootEngine.DoDefaultPurplePoof(pos, true);
        }