public void SetRunNextStageToTarget()
        {
            if (!NetworkServer.active)
            {
                Debug.LogWarning("[Server] function 'System.Void RoR2.SeerStationController::SetRunNextStageToTarget()' called on client");
                return;
            }
            SceneDef sceneDef = SceneCatalog.GetSceneDef(this.targetSceneDefIndex);

            if (sceneDef)
            {
                SceneExitController sceneExitController = this.explicitTargetSceneExitController;
                if (!sceneExitController && this.fallBackToFirstActiveExitController)
                {
                    sceneExitController = InstanceTracker.FirstOrNull <SceneExitController>();
                }
                if (sceneExitController)
                {
                    sceneExitController.destinationScene     = sceneDef;
                    sceneExitController.useRunNextStageScene = false;
                    Chat.SendBroadcastChat(new Chat.SimpleChatMessage
                    {
                        baseToken = sceneDef.portalSelectionMessageString
                    });
                }
            }
        }
Ejemplo n.º 2
0
 // Token: 0x06000946 RID: 2374 RVA: 0x000286B0 File Offset: 0x000268B0
 private void Awake()
 {
     if (NetworkServer.active)
     {
         this.onDestroyCallbacksServer              = new List <OnDestroyCallback>();
         GlobalEventManager.onCharacterDeathGlobal += this.OnCharacterDeathCallback;
     }
     this.readOnlyMembersList = new ReadOnlyCollection <CharacterMaster>(this.membersList);
     this.awakeTime           = Run.FixedTimeStamp.now;
     InstanceTracker.Add <CombatSquad>(this);
 }
Ejemplo n.º 3
0
 // Token: 0x06000947 RID: 2375 RVA: 0x00028704 File Offset: 0x00026904
 private void OnDestroy()
 {
     InstanceTracker.Remove <CombatSquad>(this);
     if (NetworkServer.active)
     {
         GlobalEventManager.onCharacterDeathGlobal -= this.OnCharacterDeathCallback;
     }
     for (int i = this.membersList.Count - 1; i >= 0; i--)
     {
         this.RemoveMemberAt(i);
     }
     this.onDestroyCallbacksServer = null;
 }
 // Token: 0x060010BD RID: 4285 RVA: 0x00049548 File Offset: 0x00047748
 private static void OnTeleporterBeginCharging(TeleporterInteraction teleporterInteraction)
 {
     if (NetworkServer.active)
     {
         foreach (PurchaseInteraction purchaseInteraction in InstanceTracker.GetInstancesList <PurchaseInteraction>())
         {
             if (purchaseInteraction.setUnavailableOnTeleporterActivated)
             {
                 purchaseInteraction.SetAvailable(false);
                 purchaseInteraction.CancelInvoke("SetUnavailableTemporarily");
             }
         }
     }
 }
Ejemplo n.º 5
0
        // Token: 0x06000C0B RID: 3083 RVA: 0x00035B20 File Offset: 0x00033D20
        public static int GetHealBeamCountForOwner(GameObject owner)
        {
            int num = 0;
            List <HealBeamController> instancesList = InstanceTracker.GetInstancesList <HealBeamController>();
            int i     = 0;
            int count = instancesList.Count;

            while (i < count)
            {
                if (instancesList[i].ownership.ownerObject == owner)
                {
                    num++;
                }
                i++;
            }
            return(num);
        }
Ejemplo n.º 6
0
        // Token: 0x06000C0A RID: 3082 RVA: 0x00035AD0 File Offset: 0x00033CD0
        public static bool HealBeamAlreadyExists(GameObject owner, HealthComponent targetHealthComponent)
        {
            List <HealBeamController> instancesList = InstanceTracker.GetInstancesList <HealBeamController>();
            int i     = 0;
            int count = instancesList.Count;

            while (i < count)
            {
                HealBeamController healBeamController = instancesList[i];
                if (healBeamController.target.healthComponent == targetHealthComponent && healBeamController.ownership.ownerObject == owner)
                {
                    return(true);
                }
                i++;
            }
            return(false);
        }
Ejemplo n.º 7
0
        // Token: 0x06000E20 RID: 3616 RVA: 0x0003F0B0 File Offset: 0x0003D2B0
        private static void StaticFixedUpdate()
        {
            int i     = 0;
            int count = MapZone.collidersToCheckInFixedUpdate.Count;

            while (i < count)
            {
                Collider exists = MapZone.collidersToCheckInFixedUpdate.Dequeue();
                if (exists)
                {
                    foreach (MapZone mapZone in InstanceTracker.GetInstancesList <MapZone>())
                    {
                        mapZone.ProcessQueuedCollisionsForCollider(exists);
                    }
                }
                i++;
            }
        }
Ejemplo n.º 8
0
 // Token: 0x060008F6 RID: 2294 RVA: 0x00026DF0 File Offset: 0x00024FF0
 public void Pulse()
 {
     ChestRevealer.< > c__DisplayClass12_0 CS$ < > 8__locals1;
     CS$ < > 8__locals1.< > 4__this         = this;
     CS$ < > 8__locals1.origin              = base.transform.position;
     CS$ < > 8__locals1.radiusSqr           = this.radius * this.radius;
     CS$ < > 8__locals1.invPulseTravelSpeed = 1f / this.pulseTravelSpeed;
     Type[] array = ChestRevealer.typesToCheck;
     for (int i = 0; i < array.Length; i++)
     {
         foreach (MonoBehaviour monoBehaviour in InstanceTracker.FindInstancesEnumerable(array[i]))
         {
             if (((IInteractable)monoBehaviour).ShouldShowOnScanner())
             {
                 this.< Pulse > g__TryAddRevealable | 12_0 (monoBehaviour.transform, ref CS$ < > 8__locals1);
             }
         }
     }
     EffectManager.SpawnEffect(this.pulseEffectPrefab, new EffectData
     {
         origin = CS$ < > 8__locals1.origin,
         scale  = this.radius * this.pulseEffectScale
     }, false);
Ejemplo n.º 9
0
 // Token: 0x06000E22 RID: 3618 RVA: 0x0003F14B File Offset: 0x0003D34B
 private void OnEnable()
 {
     InstanceTracker.Add <MapZone>(this);
 }
Ejemplo n.º 10
0
 // Token: 0x06000B33 RID: 2867 RVA: 0x000317A0 File Offset: 0x0002F9A0
 private void OnDisable()
 {
     InstanceTracker.Remove <GenericInteraction>(this);
 }
Ejemplo n.º 11
0
 // Token: 0x06000B32 RID: 2866 RVA: 0x00031798 File Offset: 0x0002F998
 private void OnEnable()
 {
     InstanceTracker.Add <GenericInteraction>(this);
 }
 // Token: 0x060012AF RID: 4783 RVA: 0x000506C2 File Offset: 0x0004E8C2
 private void OnDisable()
 {
     InstanceTracker.Remove <SceneExitController>(this);
 }
Ejemplo n.º 13
0
 // Token: 0x06000637 RID: 1591 RVA: 0x00019CCA File Offset: 0x00017ECA
 public void OnDisable()
 {
     InstanceTracker.Remove <BarrelInteraction>(this);
 }
Ejemplo n.º 14
0
 // Token: 0x06000C01 RID: 3073 RVA: 0x0003595F File Offset: 0x00033B5F
 private void OnEnable()
 {
     InstanceTracker.Add <HealBeamController>(this);
 }
Ejemplo n.º 15
0
 // Token: 0x06000B56 RID: 2902 RVA: 0x000320D5 File Offset: 0x000302D5
 private void OnDisable()
 {
     InstanceTracker.Remove <GenericPickupController>(this);
 }
        private bool PerformEquipmentAction(EquipmentIndex equipmentIndex)
        {
            if (!NetworkServer.active)
            {
                Debug.LogWarning("[Server] function 'System.Boolean RoR2.EquipmentSlot::PerformEquipmentAction(RoR2.EquipmentIndex)' called on client");
                return(false);
            }
            switch (equipmentIndex)
            {
            case EquipmentIndex.CommandMissile:
                this.remainingMissiles += 12;
                return(true);

            case EquipmentIndex.Saw:
            {
                Vector3 position = base.transform.position;
                Ray     aimRay   = this.GetAimRay();
                bool    crit     = Util.CheckRoll(this.characterBody.crit, this.characterBody.master);
                ProjectileManager.instance.FireProjectile(Resources.Load <GameObject>("Prefabs/Projectiles/Sawmerang"), aimRay.origin, Util.QuaternionSafeLookRotation(aimRay.direction), base.gameObject, this.characterBody.damage, 0f, crit, DamageColorIndex.Default, null, -1f);
                return(true);
            }

            case EquipmentIndex.Fruit:
                if (this.healthComponent)
                {
                    Util.PlaySound("Play_item_use_fruit", base.gameObject);
                    EffectData effectData = new EffectData();
                    effectData.origin = base.transform.position;
                    effectData.SetNetworkedObjectReference(base.gameObject);
                    EffectManager.SpawnEffect(Resources.Load <GameObject>("Prefabs/Effects/FruitHealEffect"), effectData, true);
                    this.healthComponent.HealFraction(0.5f, default(ProcChainMask));
                    return(true);
                }
                return(true);

            case EquipmentIndex.Meteor:
            {
                MeteorStormController component = UnityEngine.Object.Instantiate <GameObject>(Resources.Load <GameObject>("Prefabs/NetworkedObjects/MeteorStorm"), this.characterBody.corePosition, Quaternion.identity).GetComponent <MeteorStormController>();
                component.owner       = base.gameObject;
                component.ownerDamage = this.characterBody.damage;
                component.isCrit      = Util.CheckRoll(this.characterBody.crit, this.characterBody.master);
                NetworkServer.Spawn(component.gameObject);
                return(true);
            }

            case EquipmentIndex.SoulJar:
                return(true);

            case EquipmentIndex.Blackhole:
            {
                Vector3 position2 = base.transform.position;
                Ray     aimRay2   = this.GetAimRay();
                ProjectileManager.instance.FireProjectile(Resources.Load <GameObject>("Prefabs/Projectiles/GravSphere"), position2, Util.QuaternionSafeLookRotation(aimRay2.direction), base.gameObject, 0f, 0f, false, DamageColorIndex.Default, null, -1f);
                return(true);
            }

            case EquipmentIndex.GhostGun:
            {
                GameObject gameObject = UnityEngine.Object.Instantiate <GameObject>(Resources.Load <GameObject>("Prefabs/NetworkedObjects/GhostGun"), base.transform.position, Quaternion.identity);
                gameObject.GetComponent <GhostGunController>().owner = base.gameObject;
                NetworkServer.Spawn(gameObject);
                return(true);
            }

            case EquipmentIndex.CritOnUse:
                this.characterBody.AddTimedBuff(BuffIndex.FullCrit, 8f);
                return(true);

            case EquipmentIndex.DroneBackup:
            {
                Util.PlaySound("Play_item_use_radio", base.gameObject);
                int   sliceCount = 4;
                float num        = 25f;
                if (NetworkServer.active)
                {
                    float y = Quaternion.LookRotation(this.GetAimRay().direction).eulerAngles.y;
                    float d = 3f;
                    foreach (float num2 in new DegreeSlices(sliceCount, 0.5f))
                    {
                        Quaternion      rotation        = Quaternion.Euler(0f, y + num2, 0f);
                        Quaternion      rotation2       = Quaternion.Euler(0f, y + num2 + 180f, 0f);
                        Vector3         position3       = base.transform.position + rotation * (Vector3.forward * d);
                        CharacterMaster characterMaster = this.SummonMaster(Resources.Load <GameObject>("Prefabs/CharacterMasters/DroneBackupMaster"), position3, rotation2);
                        if (characterMaster)
                        {
                            characterMaster.gameObject.AddComponent <MasterSuicideOnTimer>().lifeTimer = num + UnityEngine.Random.Range(0f, 3f);
                        }
                    }
                }
                this.subcooldownTimer = 0.5f;
                return(true);
            }

            case EquipmentIndex.OrbitalLaser:
            {
                Vector3    position4 = base.transform.position;
                RaycastHit raycastHit;
                if (Physics.Raycast(this.GetAimRay(), out raycastHit, 900f, LayerIndex.world.mask | LayerIndex.defaultLayer.mask))
                {
                    position4 = raycastHit.point;
                }
                GameObject gameObject2 = (GameObject)UnityEngine.Object.Instantiate(Resources.Load("Prefabs/NetworkedObjects/OrbitalLaser"), position4, Quaternion.identity);
                gameObject2.GetComponent <OrbitalLaserController>().ownerBody = this.characterBody;
                NetworkServer.Spawn(gameObject2);
                return(true);
            }

            case EquipmentIndex.BFG:
                this.bfgChargeTimer   = 2f;
                this.subcooldownTimer = 2.2f;
                return(true);

            case EquipmentIndex.Enigma:
            {
                EquipmentIndex equipmentIndex2 = EquipmentCatalog.enigmaEquipmentList[UnityEngine.Random.Range(0, EquipmentCatalog.enigmaEquipmentList.Count - 1)];
                this.PerformEquipmentAction(equipmentIndex2);
                return(true);
            }

            case EquipmentIndex.Jetpack:
            {
                JetpackController jetpackController = JetpackController.FindJetpackController(base.gameObject);
                if (!jetpackController)
                {
                    GameObject gameObject3 = UnityEngine.Object.Instantiate <GameObject>(Resources.Load <GameObject>("Prefabs/NetworkedObjects/JetpackController"));
                    jetpackController = gameObject3.GetComponent <JetpackController>();
                    jetpackController.NetworktargetObject = base.gameObject;
                    NetworkServer.Spawn(gameObject3);
                    return(true);
                }
                jetpackController.ResetTimer();
                return(true);
            }

            case EquipmentIndex.Lightning:
            {
                this.UpdateTargets();
                HurtBox hurtBox = this.currentTargetHurtBox;
                if (hurtBox)
                {
                    this.subcooldownTimer = 0.2f;
                    OrbManager.instance.AddOrb(new LightningStrikeOrb
                        {
                            attacker         = base.gameObject,
                            damageColorIndex = DamageColorIndex.Item,
                            damageValue      = this.characterBody.damage * 30f,
                            isCrit           = Util.CheckRoll(this.characterBody.crit, this.characterBody.master),
                            procChainMask    = default(ProcChainMask),
                            procCoefficient  = 1f,
                            target           = hurtBox
                        });
                    this.InvalidateCurrentTarget();
                    return(true);
                }
                return(false);
            }

            case EquipmentIndex.PassiveHealing:
                if (this.passiveHealingFollower)
                {
                    this.UpdateTargets();
                    this.passiveHealingFollower.AssignNewTarget(this.currentTargetBodyObject);
                    this.InvalidateCurrentTarget();
                    return(true);
                }
                return(true);

            case EquipmentIndex.BurnNearby:
                if (this.characterBody)
                {
                    this.characterBody.AddHelfireDuration(8f);
                    return(true);
                }
                return(true);

            case EquipmentIndex.SoulCorruptor:
            {
                this.UpdateTargets();
                HurtBox hurtBox2 = this.currentTargetHurtBox;
                if (!hurtBox2)
                {
                    return(false);
                }
                if (!hurtBox2.healthComponent || hurtBox2.healthComponent.combinedHealthFraction > 0.25f)
                {
                    return(false);
                }
                Util.TryToCreateGhost(hurtBox2.healthComponent.body, this.characterBody, 30);
                hurtBox2.healthComponent.Suicide(base.gameObject, null, DamageType.Generic);
                this.InvalidateCurrentTarget();
                return(true);
            }

            case EquipmentIndex.Scanner:
                NetworkServer.Spawn(UnityEngine.Object.Instantiate <GameObject>(Resources.Load <GameObject>("Prefabs/NetworkedObjects/ChestScanner"), this.characterBody.corePosition, Quaternion.identity));
                return(true);

            case EquipmentIndex.CrippleWard:
                NetworkServer.Spawn(UnityEngine.Object.Instantiate <GameObject>(Resources.Load <GameObject>("Prefabs/NetworkedObjects/CrippleWard"), this.characterBody.corePosition, Quaternion.identity));
                this.inventory.SetEquipmentIndex(EquipmentIndex.None);
                return(true);

            case EquipmentIndex.Gateway:
                return(this.FireGateway());

            case EquipmentIndex.Tonic:
                this.characterBody.AddTimedBuff(BuffIndex.TonicBuff, EquipmentSlot.tonicBuffDuration);
                if (!Util.CheckRoll(80f, this.characterBody.master))
                {
                    this.characterBody.pendingTonicAfflictionCount++;
                    return(true);
                }
                return(true);

            case EquipmentIndex.QuestVolatileBattery:
                return(false);

            case EquipmentIndex.Cleanse:
            {
                Vector3    corePosition = this.characterBody.corePosition;
                EffectData effectData2  = new EffectData
                {
                    origin = corePosition
                };
                effectData2.SetHurtBoxReference(this.characterBody.mainHurtBox);
                EffectManager.SpawnEffect(Resources.Load <GameObject>("Prefabs/Effects/CleanseEffect"), effectData2, true);
                BuffIndex buffIndex = BuffIndex.Slow50;
                BuffIndex buffCount = (BuffIndex)BuffCatalog.buffCount;
                while (buffIndex < buffCount)
                {
                    if (BuffCatalog.GetBuffDef(buffIndex).isDebuff)
                    {
                        this.characterBody.ClearTimedBuffs(buffIndex);
                    }
                    buffIndex++;
                }
                DotController.RemoveAllDots(base.gameObject);
                SetStateOnHurt component2 = base.GetComponent <SetStateOnHurt>();
                if (component2)
                {
                    component2.Cleanse();
                }
                float     num3      = 6f;
                float     num4      = num3 * num3;
                TeamIndex teamIndex = this.teamComponent.teamIndex;
                List <ProjectileController> instancesList = InstanceTracker.GetInstancesList <ProjectileController>();
                List <ProjectileController> list          = new List <ProjectileController>();
                int i     = 0;
                int count = instancesList.Count;
                while (i < count)
                {
                    ProjectileController projectileController = instancesList[i];
                    if (projectileController.teamFilter.teamIndex != teamIndex && (projectileController.transform.position - corePosition).sqrMagnitude < num4)
                    {
                        list.Add(projectileController);
                    }
                    i++;
                }
                int j      = 0;
                int count2 = list.Count;
                while (j < count2)
                {
                    ProjectileController projectileController2 = list[j];
                    if (projectileController2)
                    {
                        UnityEngine.Object.Destroy(projectileController2.gameObject);
                    }
                    j++;
                }
                return(true);
            }

            case EquipmentIndex.FireBallDash:
            {
                Ray        aimRay3     = this.GetAimRay();
                GameObject gameObject4 = UnityEngine.Object.Instantiate <GameObject>(Resources.Load <GameObject>("Prefabs/NetworkedObjects/FireballVehicle"), aimRay3.origin, Quaternion.LookRotation(aimRay3.direction));
                gameObject4.GetComponent <VehicleSeat>().AssignPassenger(base.gameObject);
                CharacterBody characterBody = this.characterBody;
                NetworkUser   networkUser;
                if (characterBody == null)
                {
                    networkUser = null;
                }
                else
                {
                    CharacterMaster master = characterBody.master;
                    if (master == null)
                    {
                        networkUser = null;
                    }
                    else
                    {
                        PlayerCharacterMasterController playerCharacterMasterController = master.playerCharacterMasterController;
                        networkUser = ((playerCharacterMasterController != null) ? playerCharacterMasterController.networkUser : null);
                    }
                }
                NetworkUser networkUser2 = networkUser;
                if (networkUser2)
                {
                    NetworkServer.SpawnWithClientAuthority(gameObject4, networkUser2.gameObject);
                }
                else
                {
                    NetworkServer.Spawn(gameObject4);
                }
                this.subcooldownTimer = 2f;
                return(true);
            }

            case EquipmentIndex.GainArmor:
                this.characterBody.AddTimedBuff(BuffIndex.ElephantArmorBoost, 5f);
                return(true);
            }
            return(false);
        }
Ejemplo n.º 17
0
 // Token: 0x06000B55 RID: 2901 RVA: 0x000320CD File Offset: 0x000302CD
 private void OnEnable()
 {
     InstanceTracker.Add <GenericPickupController>(this);
 }
Ejemplo n.º 18
0
 // Token: 0x06000B91 RID: 2961 RVA: 0x000092EC File Offset: 0x000074EC
 private void OnDisable()
 {
     InstanceTracker.Remove <BazaarUpgradeInteraction>(this);
 }
Ejemplo n.º 19
0
 // Token: 0x06000B90 RID: 2960 RVA: 0x000092E4 File Offset: 0x000074E4
 private void OnEnable()
 {
     InstanceTracker.Add <BazaarUpgradeInteraction>(this);
 }
Ejemplo n.º 20
0
 // Token: 0x06000E23 RID: 3619 RVA: 0x0003F153 File Offset: 0x0003D353
 private void OnDisable()
 {
     InstanceTracker.Remove <MapZone>(this);
 }
 // Token: 0x0600068D RID: 1677 RVA: 0x0001ACB4 File Offset: 0x00018EB4
 private void OnDisable()
 {
     ObjectivePanelController.collectObjectiveSources -= this.ReportObjective;
     InstanceTracker.Remove <BossGroup>(this);
 }
Ejemplo n.º 22
0
 // Token: 0x06000636 RID: 1590 RVA: 0x00019CC2 File Offset: 0x00017EC2
 public void OnEnable()
 {
     InstanceTracker.Add <BarrelInteraction>(this);
 }
 // Token: 0x060010BB RID: 4283 RVA: 0x0004952C File Offset: 0x0004772C
 private void OnDisable()
 {
     InstanceTracker.Remove <PurchaseInteraction>(this);
 }
 // Token: 0x060014CD RID: 5325 RVA: 0x00058C62 File Offset: 0x00056E62
 private void OnEnable()
 {
     InstanceTracker.Add <TimedChestController>(this);
 }
 // Token: 0x060012AE RID: 4782 RVA: 0x000506BA File Offset: 0x0004E8BA
 private void OnEnable()
 {
     InstanceTracker.Add <SceneExitController>(this);
 }
 // Token: 0x060014CE RID: 5326 RVA: 0x00058C6A File Offset: 0x00056E6A
 private void OnDisable()
 {
     InstanceTracker.Remove <TimedChestController>(this);
 }
 // Token: 0x060010BA RID: 4282 RVA: 0x00049524 File Offset: 0x00047724
 private void OnEnable()
 {
     InstanceTracker.Add <PurchaseInteraction>(this);
 }
Ejemplo n.º 28
0
 // Token: 0x06000C02 RID: 3074 RVA: 0x00035967 File Offset: 0x00033B67
 private void OnDisable()
 {
     InstanceTracker.Remove <HealBeamController>(this);
 }
 // Token: 0x0600068C RID: 1676 RVA: 0x0001AC90 File Offset: 0x00018E90
 private void OnEnable()
 {
     InstanceTracker.Add <BossGroup>(this);
     ObjectivePanelController.collectObjectiveSources += this.ReportObjective;
     this.enabledTime = Run.FixedTimeStamp.now;
 }