Exemple #1
0
        private IEnumerator DelayedStartCR()
        {
            yield return(null);

            GameObject obj = BraveResources.Load("PlayerLich") as GameObject;

            if (obj != null)
            {
                PlayerController player = obj.GetComponent <PlayerController>();
                if (player != null)
                {
                    GameObject dustup = new GameObject("InvisibleInstantDestroyDustup");
                    dustup.SetActive(false);
                    FakePrefab.MarkAsFakePrefab(dustup);
                    UnityEngine.Object.DontDestroyOnLoad(dustup);
                    dustup.AddComponent <InstantDestroyDustup>();
                    player.OverrideDustUp = dustup;
                    foreach (tk2dSpriteAnimationClip clip in player.spriteAnimator.Library.clips)
                    {
                        foreach (tk2dSpriteAnimationFrame frame in clip.frames)
                        {
                            if (!string.IsNullOrEmpty(frame.eventAudio) && (frame.eventAudio == "Play_FS" || frame.eventAudio == "Play_CHR_boot_stairs_01"))
                            {
                                frame.eventAudio = "";
                            }
                        }
                    }
                }
            }
        }
        public void Initialize(Transform t1, Transform t2)
        {
            this.Attach1         = t1;
            this.Attach2         = t2;
            this.m_mesh          = new Mesh();
            this.m_vertices      = new Vector3[20];
            this.m_mesh.vertices = this.m_vertices;
            int[]     array = new int[54];
            Vector2[] uv    = new Vector2[20];
            int       num   = 0;

            for (int i = 0; i < 9; i++)
            {
                array[i * 6]     = num;
                array[i * 6 + 1] = num + 2;
                array[i * 6 + 2] = num + 1;
                array[i * 6 + 3] = num + 2;
                array[i * 6 + 4] = num + 3;
                array[i * 6 + 5] = num + 1;
                num += 2;
            }
            this.m_mesh.triangles = array;
            this.m_mesh.uv        = uv;
            GameObject gameObject = new GameObject("cableguy");

            this.m_stringFilter = gameObject.AddComponent <MeshFilter>();
            MeshRenderer meshRenderer = gameObject.AddComponent <MeshRenderer>();

            meshRenderer.material = (BraveResources.Load("Global VFX/WhiteMaterial", ".mat") as Material);
            meshRenderer.material.SetColor("_OverrideColor", new Color32(166, 10, 10, 255));
            this.m_stringFilter.mesh = this.m_mesh;
        }
        public static void Build()
        {
            GameObject eye = UnityEngine.Object.Instantiate(((GameObject)BraveResources.Load("Global Prefabs/CreepyEye_Room", ".prefab")).GetComponentInChildren <CreepyEyeController>().gameObject);

            eye.SetActive(false);
            FakePrefab.MarkAsFakePrefab(eye);
            UnityEngine.Object.DontDestroyOnLoad(eye);
            CreepyEyeController       controller       = eye.GetComponent <CreepyEyeController>();
            GreenChamberEyeController customController = eye.gameObject.AddComponent <GreenChamberEyeController>();

            customController.MaxPupilRadius  = controller.MaxPupilRadius;
            customController.layers          = controller.layers;
            customController.poopil          = controller.poopil;
            customController.baseSprite      = controller.baseSprite;
            customController.isHallucination = false;
            Destroy(controller);
            GreenChamberEyeController.eyePrefab = eye;
            GameObject eye2 = UnityEngine.Object.Instantiate(((GameObject)BraveResources.Load("Global Prefabs/CreepyEye_Room", ".prefab")).GetComponentInChildren <CreepyEyeController>().gameObject);

            eye2.SetActive(false);
            FakePrefab.MarkAsFakePrefab(eye2);
            UnityEngine.Object.DontDestroyOnLoad(eye2);
            CreepyEyeController       controller2       = eye2.GetComponent <CreepyEyeController>();
            GreenChamberEyeController customController2 = eye2.gameObject.AddComponent <GreenChamberEyeController>();

            customController2.MaxPupilRadius  = controller2.MaxPupilRadius;
            customController2.layers          = controller2.layers;
            customController2.poopil          = controller2.poopil;
            customController2.baseSprite      = controller2.baseSprite;
            customController2.isHallucination = true;
            Destroy(controller2);
            GreenChamberEyeController.hallucinationEyePrefab = eye2;
        }
        public void RegisterFakeChestOnMinimap(RoomHandler r)
        {
            m_registeredIconRoom = r;
            GameObject iconPrefab = MinimapIconPrefab ?? (BraveResources.Load("Global Prefabs/Minimap_Treasure_Icon", ".prefab") as GameObject);

            minimapIconInstance = Minimap.Instance.RegisterRoomIcon(r, iconPrefab, false);
        }
Exemple #5
0
        private PlayerController _ObtainCharacter(string name, bool alt)
        {
            PlayerController primaryPlayer = GameManager.Instance.PrimaryPlayer;
            Vector3          position      = primaryPlayer.transform.position;

            Object.Destroy(primaryPlayer.gameObject);
            GameManager.Instance.ClearPrimaryPlayer();
            GameManager.PlayerPrefabForNewGame = (GameObject)BraveResources.Load(name, ".prefab");
            PlayerController component = GameManager.PlayerPrefabForNewGame.GetComponent <PlayerController>();

            GameStatsManager.Instance.BeginNewSession(component);
            PlayerController playerController = null;

            if (playerController == null)
            {
                GameObject gameObject = Object.Instantiate <GameObject>(GameManager.PlayerPrefabForNewGame, position, Quaternion.identity);
                GameManager.PlayerPrefabForNewGame = null;
                gameObject.SetActive(true);
                playerController = gameObject.GetComponent <PlayerController>();
            }
            if (alt)
            {
                playerController.SwapToAlternateCostume(null);
            }
            GameManager.Instance.PrimaryPlayer = playerController;
            playerController.PlayerIDX         = 0;
            return(playerController);
        }
        private void InitializeParticleSystem()
        {
            if (m_fireSystem != null)
            {
                return;
            }
            GameObject fireMain = GameObject.Find("Gungeon_Fire_Main");

            if (fireMain == null)
            {
                fireMain      = (GameObject)Instantiate(BraveResources.Load("Particles/Gungeon_Fire_Main_raw", ".prefab"), Vector3.zero, Quaternion.identity);
                fireMain.name = "Gungeon_Fire_Main";
            }
            m_fireSystem = fireMain.GetComponent <ParticleSystem>();
            GameObject fireIntro = GameObject.Find("Gungeon_Fire_Intro");

            if (fireIntro == null)
            {
                fireIntro      = (GameObject)Instantiate(BraveResources.Load("Particles/Gungeon_Fire_Intro_raw", ".prefab"), Vector3.zero, Quaternion.identity);
                fireIntro.name = "Gungeon_Fire_Intro";
            }
            m_fireIntroSystem = fireIntro.GetComponent <ParticleSystem>();
            GameObject fireOutro = GameObject.Find("Gungeon_Fire_Outro");

            if (fireOutro == null)
            {
                fireOutro      = (GameObject)Instantiate(BraveResources.Load("Particles/Gungeon_Fire_Outro_raw", ".prefab"), Vector3.zero, Quaternion.identity);
                fireOutro.name = "Gungeon_Fire_Outro";
            }
            m_fireOutroSystem = fireOutro.GetComponent <ParticleSystem>();
        }
Exemple #7
0
        private void TransformTo(PlayerController player, string playerName)
        {
            PlayerController controller   = ((GameObject)BraveResources.Load(playerName)).GetComponent <PlayerController>();
            Transform        playerSprite = controller.transform.Find("PlayerSprite");
            tk2dBaseSprite   sprite       = playerSprite?.GetComponent <tk2dSprite>();

            var library = Instantiate(sprite.GetComponent <tk2dSpriteAnimator>().Library);

            DontDestroyOnLoad(library);

            var handSkin = controller.primaryHand.sprite.Collection;

            TurtSprites = ItemsMod.list;
            tk2dSpriteCollectionData turts = ItemsMod.HandleAnimations2(sprite, TurtSprites);

            if (turts != null)
            {
                handSkin = turts;
            }
            foreach (var clip in library.clips)
            {
                for (int i = 0; i < clip.frames.Length; i++)
                {
                    clip.frames[i].spriteCollection = turts;
                }
            }

            player.OverrideAnimationLibrary = library;
            player.ChangeHandsToCustomType(handSkin, controller.primaryHand.sprite.spriteId);
        }
 public override void Update()
 {
     base.Update();
     if (m_isCurrentlyActive && this.LastOwner != null)
     {
         bool flag = base.LastOwner.CurrentRoom != null && base.LastOwner && base.LastOwner.IsInCombat;
         if (flag)
         {
             List <AIActor> activeEnemies = base.LastOwner.CurrentRoom.GetActiveEnemies(RoomHandler.ActiveEnemyType.All);
             foreach (AIActor aiactor in activeEnemies)
             {
                 bool flag2 = aiactor != null;
                 if (flag2)
                 {
                     bool isBoss = aiactor.healthHaver.IsBoss;
                     bool flag4  = !isBoss;
                     if (flag4)
                     {
                         aiactor.PlayEffectOnActor((GameObject)BraveResources.Load("Global VFX/VFX_LockOn_Predator", ".prefab"), Vector3.zero, true, true, true);
                     }
                 }
             }
         }
     }
 }
        void Start()
        {
            string text = "HI IM LARRY";

            if (namesDB != null)
            {
                text = namesDB[UnityEngine.Random.Range(0, namesDB.Count)];
            }
            sprite = this.gameObject.GetComponent <tk2dSprite>();
            GameObject gameObject = (GameObject)UnityEngine.Object.Instantiate(BraveResources.Load("DamagePopupLabel", ".prefab"), GameUIRoot.Instance.transform);

            Vector3 worldPosition = this.transform.position;

            nameLabel = gameObject.GetComponent <dfLabel>();

            NamerModuleClassic.onNameSizeChanged      += this.OnNameSizeChanged;
            NamerModuleClassic.onOpacityAmountChanged += this.OnOpacityAmountChanged;

            if (UnityEngine.Random.value > 0.995f)
            {
                nameLabel.Glitchy = true;
            }
            nameLabel.gameObject.SetActive(true);
            nameLabel.Text               = text;
            nameLabel.Color              = Color.HSVToRGB(UnityEngine.Random.value, 1.0f, 1.0f);
            nameLabel.Opacity            = Larry.opacityAmount;
            nameLabel.transform.position = dfFollowObject.ConvertWorldSpaces(worldPosition, GameManager.Instance.MainCameraController.Camera, GameUIRoot.Instance.Manager.RenderCamera).WithZ(0f);
            nameLabel.transform.position = nameLabel.transform.position.QuantizeFloor(nameLabel.PixelsToUnits() / (Pixelator.Instance.ScaleTileScale / Pixelator.Instance.CurrentTileScale));
            nameLabel.TextScale          = Larry.nameSize;
            xOffSet = CalculateCenterXoffset(nameLabel);
        }
        public static void Init()
        {
            string     itemName     = "Imposter's Knife";
            string     resourceName = "ImposterItems/Resources/imposter_knife";
            GameObject obj          = new GameObject(itemName);
            var        item         = obj.AddComponent <ImpostersKnife>();

            ItemBuilder.AddSpriteToObject(itemName, resourceName, obj);
            string shortDesc = "Wasn't me";
            string longDesc  = "On use, deliver a quick short range, high damage stab towards a direction of your choosing.\n\nSharp, quick, reliable, and most importantly never runs out of ammo. It's no wonder why the knife is such an effective " +
                               "killing device, held back only for it's short range..maybe there's some kind of workaround to that...";

            ItemBuilder.SetupItem(item, shortDesc, longDesc, "spapi");
            ItemBuilder.SetCooldownType(item, ItemBuilder.CooldownType.Damage, 500);
            item.consumable = false;
            item.quality    = ItemQuality.SPECIAL;
            var cm = Instantiate((GameObject)BraveResources.Load("Global Prefabs/_ChallengeManager", ".prefab"));

            item.DarknessEffectShader = (cm.GetComponent <ChallengeManager>().PossibleChallenges.Where(c => c.challenge is DarknessChallengeModifier).First().challenge as DarknessChallengeModifier).DarknessEffectShader;
            VFXPool stabVFX = new VFXPool {
                type = VFXPoolType.All
            };
            VFXComplex complex = new VFXComplex();
            VFXObject  vfxObj  = new VFXObject
            {
                alignment       = VFXAlignment.Fixed,
                attached        = true,
                orphaned        = false,
                persistsOnDeath = false,
                destructible    = true,
                usesZHeight     = true,
                zHeight         = -0.25f
            };
            GameObject stabKnifeObj = SpriteBuilder.SpriteFromResource("ImposterItems/Resources/imposter_knife_stab", new GameObject("ImposterKnifeStab"));

            stabKnifeObj.SetActive(false);
            FakePrefab.MarkAsFakePrefab(stabKnifeObj);
            DontDestroyOnLoad(stabKnifeObj);
            tk2dSpriteAnimator animator = stabKnifeObj.AddComponent <tk2dSpriteAnimator>();

            SpriteBuilder.AddAnimation(animator, stabKnifeObj.GetComponent <tk2dBaseSprite>().Collection, new List <int> {
                stabKnifeObj.GetComponent <tk2dBaseSprite>().spriteId
            }, "stab", tk2dSpriteAnimationClip.WrapMode.Once).fps = 1;
            animator.playAutomatically = true;
            animator.DefaultClipId     = animator.GetClipIdByName("stab");
            SpriteAnimatorKiller killer = stabKnifeObj.AddComponent <SpriteAnimatorKiller>();

            killer.fadeTime             = -1f;
            killer.delayDestructionTime = -1f;
            killer.animator             = animator;
            ConstructOffsetsFromAnchor(stabKnifeObj.GetComponent <tk2dBaseSprite>().GetCurrentSpriteDef(), tk2dBaseSprite.Anchor.MiddleLeft);
            vfxObj.effect   = stabKnifeObj;
            complex.effects = new VFXObject[] { vfxObj };
            stabVFX.effects = new VFXComplex[] { complex };
            item.stabVfx    = stabVFX;
            Destroy(cm);
            ImpostersKnifeId = item.PickupObjectId;
            Game.Items.Rename("spapi:imposter's_knife", "spapi:imposters_knife");
        }
        private void HandleSurpriseChestAnimationEvent(tk2dSpriteAnimator animator, tk2dSpriteAnimationClip clip, int frameNo)
        {
            tk2dSpriteAnimationFrame frame = clip.GetFrame(frameNo);

            if (frame.eventInfo == "coopchestvfx")
            {
                Instantiate(BraveResources.Load("Global VFX/VFX_ChestKnock_001", ".prefab"), sprite.WorldCenter + new Vector2(0f, 0.3125f), Quaternion.identity);
            }
        }
Exemple #12
0
        private void SpawnCrate(int item)
        {
            GameObject gameObject                = (GameObject)BraveResources.Load("EmergencyCrate", ".prefab");
            GameObject gameObject2               = UnityEngine.Object.Instantiate <GameObject>(gameObject);
            EmergencyCrateController component   = gameObject2.GetComponent <EmergencyCrateController>();
            SimplerCrateBehaviour    simpleCrate = component.TurnIntoSimplerCrate();

            simpleCrate.LootID = item;

            IntVector2 bestRewardLocation = LastOwner.CurrentRoom.GetBestRewardLocation(new IntVector2(1, 1), RoomHandler.RewardLocationStyle.CameraCenter, true);

            simpleCrate.Trigger(new Vector3(-5f, -5f, -5f), bestRewardLocation.ToVector3() + new Vector3(15f, 15f, 15f), LastOwner.CurrentRoom);
            LastOwner.CurrentRoom.ExtantEmergencyCrate = gameObject2;
        }
        public static void roomMagic(PlayerController user)
        {
            Dungeon dungeon = GameManager.Instance.Dungeon;

            //dungeon.
            //tk2dTileMap tk2dTileMap = null;
            user.CurrentRoom.CompletelyPreventLeaving = true;
            List <RoomHandler> rooms = GameManager.Instance.Dungeon.data.rooms;

            foreach (RoomHandler roomHandler in rooms)
            {
                roomHandler.visibility = RoomHandler.VisibilityStatus.OBSCURED;
                //roomHandler = null;
            }
            //List<RoomHandler>.Enumerator enumerator = default(List<RoomHandler>.Enumerator);
            WarpTarget = user.CenterPosition;
            RoomHandler currentRoom = user.CurrentRoom;

            user.ForceStopDodgeRoll();
            //this.DoTentacleVFX(user);
            IntVector2?targetCenter  = new IntVector2?(user.CenterPosition.ToIntVector2(VectorConversions.Floor));
            Vector2    startingpoint = user.CenterPosition;
            //RoomHandler creepyRoom = GameManager.Instance.Dungeon.AddRuntimeRoom(new IntVector2(30, 30), (GameObject)BraveResources.Load(room));
            RoomHandler creepyRoom = tools.AddCustomRuntimeRoom(room, false, false, true, null, DungeonData.LightGenerationStyle.STANDARD);
            //PrototypeDungeonRoom creepyRoom =
            GameObject  gameObject = (GameObject)UnityEngine.Object.Instantiate(BraveResources.Load("RuntimeTileMap", ".prefab"));
            tk2dTileMap component  = gameObject.GetComponent <tk2dTileMap>();

            //creepyRoom.PrecludeTilemapDrawing = true;
            //creepyRoom.OverrideTilemap = component;

            //tk2dTileMap component = (tk2dTileMap)UnityEngine.Object.Instantiate(BraveResources.Load("RuntimeTileMap", ".prefab"));
            //tk2dTileMap component = GameObject.Find("TileMap").GetComponent<tk2dTileMap>();
            //creepyRoom.OverrideTilemap = (tk2dTileMap)BraveResources.Load("Global Prefabs/ENV_Tileset_Gungeon", ".prefab");
            //creepyRoom.OverrideTilemap = component;
            creepyRoom.DrawPrecludedCeilingTiles = true;
            creepyRoom.PrecludeTilemapDrawing    = true;
            TeleportToRoom(user, creepyRoom);

            user.WarpToPoint((creepyRoom.area.basePosition + new IntVector2(12, 4)).ToVector2(), false, false);
            bool flag2 = GameManager.Instance.CurrentGameType == GameManager.GameType.COOP_2_PLAYER;

            if (flag2)
            {
                GameManager.Instance.GetOtherPlayer(user).ReuniteWithOtherPlayer(user, false);
            }
            //static float CharNum = 0;
        }
        private static Dictionary <string, StringTableManager.StringCollection> LoadEnemiesTable(string subDirectory)
        {
            TextAsset textAsset = (TextAsset)BraveResources.Load("strings/" + subDirectory + "/enemies", typeof(TextAsset), ".txt");

            if (textAsset == null)
            {
                Debug.LogError("Failed to load string table: ENEMIES.");
                return(null);
            }
            StringReader stringReader = new StringReader(textAsset.text);
            Dictionary <string, StringTableManager.StringCollection> dictionary = new Dictionary <string, StringTableManager.StringCollection>();

            StringTableManager.StringCollection stringCollection = null;
            string text;

            while ((text = stringReader.ReadLine()) != null)
            {
                if (!text.StartsWith("//"))
                {
                    if (text.StartsWith("#"))
                    {
                        stringCollection = new StringTableManager.ComplexStringCollection();
                        if (dictionary.ContainsKey(text))
                        {
                            Debug.LogError("Failed to add duplicate key to items table: " + text);
                        }
                        else
                        {
                            dictionary.Add(text, stringCollection);
                        }
                    }
                    else
                    {
                        string[] array = text.Split(new char[] { '|' });
                        if (array.Length == 1)
                        {
                            stringCollection.AddString(array[0], 1f);
                        }
                        else
                        {
                            stringCollection.AddString(array[1], float.Parse(array[0]));
                        }
                    }
                }
            }
            return(dictionary);
        }
        public static void SwitchSecondaryCharacter(string[] args)
        {
            prefabPath = "Player" + args[0];
            if (args == null || args.Length < 1)
            {
                return;
            }

            var prefab = (GameObject)BraveResources.Load(prefabPath, ".prefab");

            if (prefab == null)
            {
                Tools.Print("Failed getting prefab for " + args[0]);
                return;
            }

            GameManager.Instance.StartCoroutine(HandleCharacterChange());
        }
Exemple #16
0
        private IDPool <T, TagType> _ReadIDMapBraveResources <T, TagType>(StreamReader stream) where T : UnityEngine.Component where TagType : struct, IConvertible
        {
            return(_ReadIDMap <T, TagType>((line_id, prefab_name) => {
                prefab_name = prefab_name.Replace("%%%", " ");

                var prefab = BraveResources.Load <GameObject>(prefab_name);
                if (prefab == null)
                {
                    throw new Exception($"Failed parsing ID map file: failed to load asset '{prefab_name}'");
                }
                var component = prefab.GetComponent <T>();
                if (component == null)
                {
                    throw new Exception($"Failed parsing ID map file: successfully loaded asset '{prefab_name}', but it doesn't have a '{typeof(T).Name}' type component");
                }
                return component;
            }, stream));
        }
Exemple #17
0
        public static void DoStringSquirt(string text, Vector2 point, Color colour, float heightOffGround = 3f, float opacity = 1f)
        {
            GameObject gameObject = (GameObject)UnityEngine.Object.Instantiate(BraveResources.Load("DamagePopupLabel", ".prefab"), GameUIRoot.Instance.transform);

            dfLabel label = gameObject.GetComponent <dfLabel>();

            label.gameObject.SetActive(true);
            label.Text          = text;
            label.Color         = colour;
            label.Opacity       = opacity;
            label.TextAlignment = TextAlignment.Center;

            label.transform.position = point;
            Vector2 point2 = new Vector2(label.transform.position.x - (label.GetCenter().x - label.transform.position.x), point.y);

            label.transform.position = label.transform.position.QuantizeFloor(label.PixelsToUnits() / (Pixelator.Instance.ScaleTileScale / Pixelator.Instance.CurrentTileScale));
            label.StartCoroutine(HandleDamageNumberCR(point2, point2.y - heightOffGround, label));
        }
Exemple #18
0
        public static GameObject GetPlayerPrefab(PlayableCharacters character)
        {
            string resourceName;

            if (character == PlayableCharacters.Soldier)
            {
                resourceName = "marine";
            }
            else if (character == PlayableCharacters.Pilot)
            {
                resourceName = "rogue";
            }
            else
            {
                resourceName = character.ToString().ToLower();
            }

            return((GameObject)BraveResources.Load("player" + resourceName));
        }
Exemple #19
0
        void Start()
        {
            string text = "the store is now closed, please leave the building";

            GameObject gameObject = (GameObject)UnityEngine.Object.Instantiate(BraveResources.Load("DamagePopupLabel", ".prefab"), GameUIRoot.Instance.transform);

            Vector3 worldPosition = this.transform.position;

            dfLabel = gameObject.GetComponent <dfLabel>();
            dfLabel.gameObject.SetActive(true);
            dfLabel.Text                               = text;
            dfLabel.Color                              = Color.red;
            dfLabel.Opacity                            = Larry.opacityAmount;
            dfLabel.TextScale                          = Larry.nameSize;
            dfLabel.transform.position                 = dfFollowObject.ConvertWorldSpaces(worldPosition, GameManager.Instance.MainCameraController.Camera, GameUIRoot.Instance.Manager.RenderCamera).WithZ(0f);
            dfLabel.transform.position                 = dfLabel.transform.position.QuantizeFloor(dfLabel.PixelsToUnits() / (Pixelator.Instance.ScaleTileScale / Pixelator.Instance.CurrentTileScale));
            NamerModuleClassic.onNameSizeChanged      += this.OnNameSizeChanged;
            NamerModuleClassic.onOpacityAmountChanged += this.OnOpacityAmountChanged;
        }
        // Token: 0x06007CE5 RID: 31973 RVA: 0x00316054 File Offset: 0x00314254
        public void Interact(PlayerController interactor)
        {
            if (!PassiveItem.IsFlagSetAtAll(typeof(PickpocketGuide)))
            {
                return;
            }
            PlayerController player            = GameManager.Instance.PrimaryPlayer;
            FloorRewardData  currentRewardData = GameManager.Instance.RewardManager.CurrentRewardData;

            LootEngine.AmmoDropType ammoDropType = LootEngine.AmmoDropType.DEFAULT_AMMO;
            bool   flag  = LootEngine.DoAmmoClipCheck(currentRewardData, out ammoDropType);
            string path  = (ammoDropType != LootEngine.AmmoDropType.SPREAD_AMMO) ? "Ammo_Pickup" : "Ammo_Pickup_Spread";
            float  value = UnityEngine.Random.value;
            float  num   = currentRewardData.ChestSystem_ChestChanceLowerBound;

            if (value <= 0.2f)
            {
                IntVector2 bestRewardLocation = base.sprite.WorldCenter.ToIntVector2();
                LootEngine.SpawnItem((GameObject)BraveResources.Load(path, ".prefab"), bestRewardLocation.ToVector3(), Vector2.up, 1f, true, true, false);
            }
            else if (value <= 0.95f)
            {
                GameObject gameObject;
                if (value <= 0.6f)
                {
                    gameObject = currentRewardData.SingleItemRewardTable.SelectByWeight(false);
                }
                else
                {
                    gameObject = ((UnityEngine.Random.value >= 0.9f) ? GameManager.Instance.RewardManager.FullHeartPrefab.gameObject : GameManager.Instance.RewardManager.HalfHeartPrefab.gameObject);
                }
                DebrisObject debrisObject = LootEngine.SpawnItem(gameObject, base.sprite.WorldCenter.ToIntVector2().ToVector3() + new Vector3(0.25f, 0f, 0f), Vector2.up, 1f, true, true, false);
                AkSoundEngine.PostEvent("Play_OBJ_item_spawn_01", debrisObject.gameObject);
            }
            else
            {
                GameManager.Instance.RewardManager.SpawnTotallyRandomItem(base.sprite.WorldCenter);
            }
            this.m_room.DeregisterInteractable(this);
            PickpocketGuide.unstealthBehavior unstealthBehavior = player.gameObject.GetOrAddComponent <PickpocketGuide.unstealthBehavior>();
            unstealthBehavior.parentItem.BreakStealth(player);
        }
        public void ConfigureOnPlacement(RoomHandler room)
        {
            gameObject.SetActive(true);
            enabled = true;

            IntVector2 SpawnPosition = (gameObject.transform.PositionVector2().ToIntVector2() - room.area.basePosition);
            Vector2    NodePosition  = SpawnPosition.ToVector2();

            SerializedPath SawBladePath = GenerateRectanglePathInset(NodePosition, PathNodeAreaSize);

            room.area.prototypeRoom.paths.Add(SawBladePath);

            DungeonPlaceable m_TrapPlacable = BraveResources.Load <DungeonPlaceable>("RobotDaveTraps", ".asset");

            GameObject sawbladePrefab = null;

            if (m_TrapPlacable)
            {
                sawbladePrefab = m_TrapPlacable.variantTiers[0].nonDatabasePlaceable;
            }

            if (sawbladePrefab)
            {
                GameObject m_PlacedSawBlade = Instantiate(sawbladePrefab, gameObject.transform.position, Quaternion.identity);
                m_PlacedSawBlade.SetActive(false);

                if (m_PlacedSawBlade)
                {
                    PathMover SawPathMover = m_PlacedSawBlade.GetComponent <PathMover>();
                    if (SawPathMover != null)
                    {
                        SawPathMover.RoomHandler             = room;
                        SawPathMover.Path                    = SawBladePath;
                        SawPathMover.PathStartNode           = Random.Range(0, SawBladePath.nodes.Count);
                        SawPathMover.IsUsingAlternateTargets = false;
                        SawPathMover.ForceCornerDelayHack    = false;
                        SawPathMover.nodeOffset              = PathNodeOffset;
                        m_PlacedSawBlade.SetActive(true);
                    }
                }
            }
        }
        private PickupObject OpenS(PlayerController user)
        {
            PickupObject.ItemQuality itemQuality          = PickupObject.ItemQuality.S;
            PickupObject             itemOfTypeAndQuality = (UnityEngine.Random.value >= 0.5f) ? LootEngine.GetItemOfTypeAndQuality <PickupObject>(itemQuality, GameManager.Instance.RewardManager.GunsLootTable, false) : LootEngine.GetItemOfTypeAndQuality <PickupObject>(itemQuality, GameManager.Instance.RewardManager.ItemsLootTable, false);
            DebrisObject             debrisObject         = LootEngine.SpawnItem(itemOfTypeAndQuality.gameObject, user.CenterPosition, Vector2.up, 1f, true, true, false);

            if (debrisObject)
            {
                Vector2    v          = (!debrisObject.sprite) ? (debrisObject.transform.position.XY() + new Vector2(0.5f, 0.5f)) : debrisObject.sprite.WorldCenter;
                GameObject gameObject = SpawnManager.SpawnVFX((GameObject)BraveResources.Load("Global VFX/VFX_BlackPhantomDeath", ".prefab"), v, Quaternion.identity, false);
                if (gameObject && gameObject.GetComponent <tk2dSprite>())
                {
                    tk2dSprite component = gameObject.GetComponent <tk2dSprite>();
                    component.HeightOffGround = 5f;
                    component.UpdateZDepth();
                }
                return(debrisObject.GetComponentInChildren <PickupObject>());
            }
            return(null);
        }
        private static PlayerController GeneratePlayer(Vector3 position)
        {
            if (GameManager.Instance.SecondaryPlayer != null)
            {
                return(GameManager.Instance.SecondaryPlayer);
            }
            GameManager.Instance.ClearSecondaryPlayer();
            GameManager.LastUsedCoopPlayerPrefab = (GameObject)BraveResources.Load(prefabPath);
            PlayerController playerController = null;

            if (playerController == null)
            {
                GameObject gameObject = UnityEngine.Object.Instantiate <GameObject>(GameManager.LastUsedCoopPlayerPrefab, position, Quaternion.identity);
                gameObject.SetActive(true);
                playerController = gameObject.GetComponent <PlayerController>();
            }

            GameManager.Instance.SecondaryPlayer = playerController;
            playerController.PlayerIDX           = 1;
            return(playerController);
        }
        private void FireRocket(AIActor enemy)
        {
            var cm = UnityEngine.Object.Instantiate <GameObject>((GameObject)BraveResources.Load("Global Prefabs/_ChallengeManager", ".prefab"));

            this.Rocket = (cm.GetComponent <ChallengeManager>().PossibleChallenges.Where(c => c.challenge is SkyRocketChallengeModifier).First().challenge as SkyRocketChallengeModifier).Rocket;
            UnityEngine.Object.Destroy(cm);
            if (BossKillCam.BossDeathCamRunning)
            {
                return;
            }
            if (GameManager.Instance.PreventPausing)
            {
                return;
            }
            SkyRocket component = SpawnManager.SpawnProjectile(this.Rocket, Vector3.zero, Quaternion.identity, true).GetComponent <SkyRocket>();

            component.Target = enemy.specRigidbody;
            tk2dSprite componentInChildren = component.GetComponentInChildren <tk2dSprite>();

            component.transform.position = component.transform.position.WithY(component.transform.position.y - componentInChildren.transform.localPosition.y);
            this.m_spawnedRockets++;
        }
Exemple #25
0
        public static void Build()
        {
            GameObject eye = UnityEngine.Object.Instantiate(((GameObject)BraveResources.Load("Global Prefabs/CreepyEye_Room", ".prefab")).GetComponentInChildren <CreepyEyeController>().gameObject);

            eye.SetActive(false);
            FakePrefab.MarkAsFakePrefab(eye);
            UnityEngine.Object.DontDestroyOnLoad(eye);
            CreepyEyeController       controller       = eye.GetComponent <CreepyEyeController>();
            CustomCreepyEyeController customController = eye.gameObject.AddComponent <CustomCreepyEyeController>();

            customController.MaxPupilRadius = controller.MaxPupilRadius;
            customController.layers         = controller.layers;
            customController.poopil         = controller.poopil;
            customController.baseSprite     = controller.baseSprite;
            if (eye.GetComponent <SpeculativeRigidbody>() != null)
            {
                eye.GetComponent <SpeculativeRigidbody>().CollideWithOthers  = false;
                eye.GetComponent <SpeculativeRigidbody>().CollideWithTileMap = false;
            }
            Destroy(controller);
            CustomCreepyEyeController.eyePrefab = eye;
        }
 public void ConfigureOnPlacement(RoomHandler room)
 {
     if (ConfigurationWasDeferred)
     {
         IntVector2 intVector = transform.position.IntXY(VectorConversions.Floor);
         for (int i = 0; i < 6; i++)
         {
             for (int j = -2; j < 6; j++)
             {
                 CellData cellData = GameManager.Instance.Dungeon.data.cellData[intVector.x + i][intVector.y + j];
                 cellData.cellVisualData.precludeAllTileDrawing = true;
                 if (j < 4)
                 {
                     cellData.type             = CellType.PIT;
                     cellData.fallingPrevented = true;
                 }
                 cellData.isOccupied = true;
             }
         }
         if ((GameManager.Instance.CurrentGameMode == GameManager.GameMode.NORMAL || GameManager.Instance.CurrentGameMode == GameManager.GameMode.SHORTCUT) && GameManager.Instance.CurrentLevelOverrideState != GameManager.LevelOverrideState.TUTORIAL)
         {
             GameObject gameObject = (GameObject)Instantiate(BraveResources.Load("Global Prefabs/CryoElevatorButton", ".prefab"), transform.position + new Vector3(-1f, 0f, 0f), Quaternion.identity);
             IntVector2 a          = transform.position.IntXY(VectorConversions.Floor) + new IntVector2(-2, 0);
             for (int k = 0; k < 2; k++)
             {
                 for (int l = -1; l < 2; l++)
                 {
                     if (GameManager.Instance.Dungeon.data.CheckInBoundsAndValid(a + new IntVector2(k, l)))
                     {
                         CellData cellData2 = GameManager.Instance.Dungeon.data[a + new IntVector2(k, l)];
                         cellData2.cellVisualData.containsWallSpaceStamp   = true;
                         cellData2.cellVisualData.containsObjectSpaceStamp = true;
                     }
                 }
             }
         }
     }
 }
        public static void SwitchSecondaryCharacter(string[] args)
        {
            if (args == null || args.Length < 1)
            {
                return;
            }
            if (!GameManager.Instance.SecondaryPlayer)
            {
                Tools.PrintError("You need to enter co-op mode before using the character2 command");
                return;
            }

            prefabPath = "Player" + args[0];
            var prefab = (GameObject)BraveResources.Load(prefabPath, ".prefab");

            if (prefab == null)
            {
                Tools.Print("Failed getting prefab for " + args[0]);
                return;
            }
            GameManager.Instance.StartCoroutine(HandleCharacterChange());
            Hooks.ResetInfiniteGuns();
        }
Exemple #28
0
        private void InternalForceBlank(Vector2 center, float overrideRadius = 25f, float overrideTimeAtMaxRadius = 0.5f, bool silent = false, bool breaksWalls = true, bool breaksObjects = true, float overrideForce = -1f, Action <Projectile> customCallback = null)
        {
            GameObject silencerVFX = (!silent) ? ((GameObject)BraveResources.Load("Global VFX/BlankVFX", ".prefab")) : null;

            if (!silent)
            {
                AkSoundEngine.PostEvent("Play_OBJ_silenceblank_use_01", base.gameObject);
                AkSoundEngine.PostEvent("Stop_ENM_attack_cancel_01", base.gameObject);
            }
            GameObject       gameObject       = new GameObject("silencer");
            SilencerInstance silencerInstance = gameObject.AddComponent <SilencerInstance>();

            if (customCallback != null)
            {
                silencerInstance.UsesCustomProjectileCallback = true;
                silencerInstance.OnCustomBlankedProjectile    = customCallback;
            }
            silencerInstance.TriggerSilencer(center, 50f, overrideRadius, silencerVFX, (!silent) ? 0.15f : 0f, (!silent) ? 0.2f : 0f, (float)((!silent) ? 50 : 0), (float)((!silent) ? 10 : 0), (!silent) ? ((overrideForce < 0f) ? 140f : overrideForce) : 0f, (float)((!breaksObjects) ? 0 : ((!silent) ? 15 : 5)), overrideTimeAtMaxRadius, base.Owner, breaksWalls, false);
            if (base.Owner)
            {
                base.Owner.DoVibration(Vibration.Time.Quick, Vibration.Strength.Medium);
            }
        }
 public static void DoSetup()
 {
     if (m_loaded)
     {
         return;
     }
     HuntData = (MonsterHuntData)BraveResources.Load("Monster Hunt Data", ".asset");
     huntProgressLoadedHook = new Hook(
         typeof(MonsterHuntProgress).GetMethod("OnLoaded"),
         typeof(CustomHuntQuests).GetMethod("HuntProgressLoadedHook")
         );
     huntProgressCompleteHook = new Hook(
         typeof(MonsterHuntProgress).GetMethod("Complete"),
         typeof(CustomHuntQuests).GetMethod("HuntProgressCompleteHook")
         );
     huntProgressQuestCompleteHook = new Hook(
         typeof(MonsterHuntProgress).GetMethod("IsQuestComplete"),
         typeof(CustomHuntQuests).GetMethod("HuntProgressQuestCompleteHook")
         );
     huntProgressNextQuestHook = new Hook(
         typeof(MonsterHuntProgress).GetMethod("TriggerNextQuest"),
         typeof(CustomHuntQuests).GetMethod("HuntProgressNextQuestHook")
         );
     huntProgressProcessKillHook = new Hook(
         typeof(MonsterHuntProgress).GetMethod("ProcessKill"),
         typeof(CustomHuntQuests).GetMethod("HuntProgressProcessKillHook")
         );
     huntQuestCompleteHook = new Hook(
         typeof(MonsterHuntQuest).GetMethod("IsQuestComplete"),
         typeof(CustomHuntQuests).GetMethod("HuntQuestCompleteHook")
         );
     huntQuestUnlockRewardsHook = new Hook(
         typeof(MonsterHuntQuest).GetMethod("UnlockRewards"),
         typeof(CustomHuntQuests).GetMethod("HuntQuestUnlockRewardsHook")
         );
     m_loaded = true;
 }
Exemple #30
0
 internal static TextAsset LoadTextAsset(string path)
 {
     Logger.Debug($"Loading builtin localization asset 'strings/{path}'");
     return((TextAsset)BraveResources.Load("strings/" + path, typeof(TextAsset), ".txt"));
 }