Exemple #1
0
        private void SpawnFoldingTable()
        {
            Vector2              nearbyPoint          = Owner.CenterPosition + (Owner.unadjustedAimPoint.XY() - Owner.CenterPosition).normalized;
            IntVector2?          nearestAvailableCell = Owner.CurrentRoom.GetNearestAvailableCell(nearbyPoint, new IntVector2?(IntVector2.One), new CellTypes?(CellTypes.FLOOR), false, null);
            FoldingTableItem     component6           = PickupObjectDatabase.GetById(644).GetComponent <FoldingTableItem>();
            GameObject           gameObject5          = component6.TableToSpawn.gameObject;
            GameObject           gameObject6          = UnityEngine.Object.Instantiate <GameObject>(gameObject5.gameObject, nearestAvailableCell.Value.ToVector2(), Quaternion.identity);
            SpeculativeRigidbody componentInChildren  = gameObject6.GetComponentInChildren <SpeculativeRigidbody>();
            FlippableCover       component7           = gameObject6.GetComponent <FlippableCover>();

            component7.transform.position.XY().GetAbsoluteRoom().RegisterInteractable(component7);
            component7.ConfigureOnPlacement(component7.transform.position.XY().GetAbsoluteRoom());
            componentInChildren.Initialize();
            PhysicsEngine.Instance.RegisterOverlappingGhostCollisionExceptions(componentInChildren, null, false);
        }
        private void HandleHit(Projectile arg1, SpeculativeRigidbody arg2, bool arg3)
        {
            if (arg2.aiActor != null && arg2.aiActor.behaviorSpeculator && !arg2.aiActor.IsHarmlessEnemy)
            {
                PlayerController player = gun.CurrentOwner as PlayerController;
                if ((player.HasPickupID(131) || player.HasPickupID(239) || player.HasPickupID(815)) || (gun.DuctTapeMergedGunIDs != null))
                {
                    float value2 = UnityEngine.Random.Range(0.0f, 1.0f);
                    if (value2 <= 0.05 && armorCount < 10)
                    {
                        GameManager.Instance.StartCoroutine(this.Clang());
                        LootEngine.SpawnItem(PickupObjectDatabase.GetById(120).gameObject, arg2.sprite.WorldBottomCenter, Vector2.up, 1f, true, false, true);
                        armorCount += 1;
                    }
                }

                float value = UnityEngine.Random.Range(0.0f, 1.0f);
                if (value <= 0.05)
                {
                    GameManager.Instance.StartCoroutine(this.Clang());

                    // TURRET
                    SpawnObjectPlayerItem portableturret = PickupObjectDatabase.GetById(201).GetComponent <SpawnObjectPlayerItem>();
                    String     turretGuid    = portableturret.enemyGuidToSpawn;
                    GameObject objectToSpawn = EnemyDatabase.GetOrLoadByGuid(turretGuid).gameObject;

                    GameObject     gameObject2 = UnityEngine.Object.Instantiate <GameObject>(objectToSpawn, arg2.sprite.WorldBottomCenter, Quaternion.identity);
                    tk2dBaseSprite component4  = gameObject2.GetComponent <tk2dBaseSprite>();
                    if (component4)
                    {
                        component4.sprite.IsPerpendicular = true;
                        component4.PlaceAtPositionByAnchor(arg2.sprite.WorldBottomCenter.ToVector3ZUp(component4.transform.position.z), tk2dBaseSprite.Anchor.MiddleCenter);
                    }
                    this.spawnedPlayerObject = gameObject2;
                    PortableTurretController component5 = this.spawnedPlayerObject.GetComponent <PortableTurretController>();
                    if (component5)
                    {
                        component5.sourcePlayer = player;
                    }
                }

                else
                {
                    if (value <= 0.1)
                    {
                        GameManager.Instance.StartCoroutine(this.Clang());

                        //MINE
                        SpawnObjectPlayerItem proximitymine = PickupObjectDatabase.GetById(66).GetComponent <SpawnObjectPlayerItem>();
                        GameObject            mineObject    = proximitymine.objectToSpawn.gameObject;

                        GameObject     mineObject2 = UnityEngine.Object.Instantiate <GameObject>(mineObject, arg2.sprite.WorldBottomCenter, Quaternion.identity);
                        tk2dBaseSprite mineSprite  = mineObject2.GetComponent <tk2dBaseSprite>();
                        if (mineSprite)
                        {
                            mineSprite.IsPerpendicular = true;
                            mineSprite.PlaceAtPositionByAnchor(arg2.sprite.WorldBottomCenter, tk2dBaseSprite.Anchor.MiddleCenter);
                        }
                    }

                    else
                    {
                        if (value <= 0.15)
                        {
                            GameManager.Instance.StartCoroutine(this.Clang());

                            //TABLE
                            FoldingTableItem     foldingtable        = PickupObjectDatabase.GetById(644).GetComponent <FoldingTableItem>();
                            GameObject           tableObject         = foldingtable.TableToSpawn.gameObject;
                            GameObject           gameObject          = UnityEngine.Object.Instantiate <GameObject>(tableObject.gameObject, arg2.sprite.WorldBottomCenter, Quaternion.identity);
                            SpeculativeRigidbody componentInChildren = gameObject.GetComponentInChildren <SpeculativeRigidbody>();
                            FlippableCover       component           = gameObject.GetComponent <FlippableCover>();
                            component.transform.position.XY().GetAbsoluteRoom().RegisterInteractable(component);
                            component.ConfigureOnPlacement(component.transform.position.XY().GetAbsoluteRoom());
                            componentInChildren.Initialize();
                            PhysicsEngine.Instance.RegisterOverlappingGhostCollisionExceptions(componentInChildren, null, false);
                        }
                    }
                }
            }
        }