コード例 #1
0
        private void Main_FirstFrame1()
        {
            foreach (var effect in skinnedEffects)
            {
                var ind = EffectCatalog.FindEffectIndexFromPrefab(effect);
                if (ind == EffectIndex.Invalid)
                {
                    Main.LogE("Invalid effect: " + effect.name);
                    continue;
                }

                skinnedEffectCache[ind] = new Dictionary <UInt32, EffectDef>();
            }

            foreach (var projectile in skinnedProjectiles)
            {
                var ind = ProjectileCatalog.GetProjectileIndex(projectile);
                if (ind == -1)
                {
                    Main.LogE("Invalid projectile: " + projectile.name);
                    continue;
                }

                skinnedGhostCache[ind] = new Dictionary <UInt32, GameObject>();
            }
        }
 // Token: 0x060028B5 RID: 10421 RVA: 0x000ACD1D File Offset: 0x000AAF1D
 public override void OnInstall()
 {
     base.OnInstall();
     this.impBossBodyIndex   = BodyCatalog.FindBodyIndex("ImpBossBody");
     this.bfgProjectileIndex = ProjectileCatalog.FindProjectileIndex("BeamSphere");
     GlobalEventManager.onCharacterDeathGlobal += this.OnCharacterDeath;
 }
コード例 #3
0
        // Token: 0x06001EE7 RID: 7911 RVA: 0x00085E78 File Offset: 0x00084078
        private void HandlePlayerFireProjectileInternal(NetworkMessage netMsg)
        {
            netMsg.ReadMessage <ProjectileManager.PlayerFireProjectileMessage>(this.fireMsg);
            GameObject projectilePrefab = ProjectileCatalog.GetProjectilePrefab((int)this.fireMsg.prefabIndex);

            if (projectilePrefab == null)
            {
                this.ReleasePredictionId(netMsg.conn, this.fireMsg.predictionId);
                return;
            }
            FireProjectileInfo fireProjectileInfo = default(FireProjectileInfo);

            fireProjectileInfo.projectilePrefab = projectilePrefab;
            fireProjectileInfo.position         = this.fireMsg.position;
            fireProjectileInfo.rotation         = this.fireMsg.rotation;
            fireProjectileInfo.owner            = this.fireMsg.owner;
            fireProjectileInfo.damage           = this.fireMsg.damage;
            fireProjectileInfo.force            = this.fireMsg.force;
            fireProjectileInfo.crit             = this.fireMsg.crit;
            GameObject gameObject = this.fireMsg.target.ResolveGameObject();

            fireProjectileInfo.target           = ((gameObject != null) ? gameObject.gameObject : null);
            fireProjectileInfo.damageColorIndex = this.fireMsg.damageColorIndex;
            fireProjectileInfo.speedOverride    = this.fireMsg.speedOverride;
            fireProjectileInfo.fuseOverride     = this.fireMsg.fuseOverride;
            this.FireProjectileServer(fireProjectileInfo, netMsg.conn, this.fireMsg.predictionId, (double)Run.instance.time - this.fireMsg.sendTime);
        }
コード例 #4
0
                public override void OnInstall()
                {
                    base.OnInstall();
                    GenericGameEvents.OnTakeDamage += OnTakeDamage;

                    projectileIndex = ProjectileCatalog.FindProjectileIndex("Sawmerang");
                    bodyIndex       = BodyCatalog.FindBodyIndex("EquipmentDroneBody");
                }
コード例 #5
0
 public override void OnInstall()
 {
     base.OnInstall();
     this.fireProjIndex      = ProjectileCatalog.FindProjectileIndex("ManipulatorBlinkFire");
     this.lightningProjIndex = ProjectileCatalog.FindProjectileIndex("ManipulatorBlinkLightning");
     this.iceProjIndex       = ProjectileCatalog.FindProjectileIndex("ManipulatorBlinkIce");
     this.requiredSkillDef   = SkillCatalog.GetSkillDef(SkillCatalog.FindSkillIndexByName("Manipulator.Venting Step"));
     GlobalEventManager.onCharacterDeathGlobal += onCharacterDeathGlobal;
     RoR2Application.onFixedUpdate             += FixedUpdate;
 }
コード例 #6
0
 private void onCharacterDeathGlobal(DamageReport report)
 {
     if (report.attackerBody == this.trackedBody && report.attackerBody)
     {
         if (!base.IsCurrentBody(report.damageInfo.attacker))
         {
             return;
         }
         int index = ProjectileCatalog.GetProjectileIndex(report.damageInfo.inflictor);
         if (index == this.fireProjIndex || index == this.lightningProjIndex || index == this.iceProjIndex)
         {
             this.progress++;
             if (this.progress >= ManipulatorJump.requirement)
             {
                 base.Grant();
             }
         }
     }
 }
コード例 #7
0
        // Token: 0x06001EE1 RID: 7905 RVA: 0x00085AC0 File Offset: 0x00083CC0
        private void FireProjectileClient(FireProjectileInfo fireProjectileInfo, NetworkClient client)
        {
            int projectileIndex = ProjectileCatalog.GetProjectileIndex(fireProjectileInfo.projectilePrefab);

            if (projectileIndex == -1)
            {
                Debug.LogErrorFormat(fireProjectileInfo.projectilePrefab, "Prefab {0} is not a registered projectile prefab.", new object[]
                {
                    fireProjectileInfo.projectilePrefab
                });
                return;
            }
            bool   allowPrediction = ProjectileCatalog.GetProjectilePrefabProjectileControllerComponent(projectileIndex).allowPrediction;
            ushort predictionId    = 0;

            if (allowPrediction)
            {
                ProjectileController component = UnityEngine.Object.Instantiate <GameObject>(fireProjectileInfo.projectilePrefab, fireProjectileInfo.position, fireProjectileInfo.rotation).GetComponent <ProjectileController>();
                ProjectileManager.InitializeProjectile(component, fireProjectileInfo);
                this.predictionManager.RegisterPrediction(component);
                predictionId = component.predictionId;
            }
            this.fireMsg.sendTime         = (double)Run.instance.time;
            this.fireMsg.prefabIndex      = (byte)projectileIndex;
            this.fireMsg.position         = fireProjectileInfo.position;
            this.fireMsg.rotation         = fireProjectileInfo.rotation;
            this.fireMsg.owner            = fireProjectileInfo.owner;
            this.fireMsg.predictionId     = predictionId;
            this.fireMsg.damage           = fireProjectileInfo.damage;
            this.fireMsg.force            = fireProjectileInfo.force;
            this.fireMsg.crit             = fireProjectileInfo.crit;
            this.fireMsg.damageColorIndex = fireProjectileInfo.damageColorIndex;
            this.fireMsg.speedOverride    = fireProjectileInfo.speedOverride;
            this.fireMsg.fuseOverride     = fireProjectileInfo.fuseOverride;
            this.fireMsg.target           = HurtBoxReference.FromRootObject(fireProjectileInfo.target);
            NetworkWriter networkWriter = new NetworkWriter();

            networkWriter.StartMessage(49);
            networkWriter.Write(this.fireMsg);
            networkWriter.FinishMessage();
            client.SendWriter(networkWriter, 0);
        }
コード例 #8
0
        }                                                       // = Resources.Load<GameObject>("Prefabs/Projectiles/PaladinRocket");

        static ChargePlasmoids()
        {
            var plasmoidProjectile = ProjectileCatalog.GetProjectilePrefab(69);
            //var plasmoidProjectile = UnityEngine.Object.Instantiate(Resources.Load<GameObject>("Prefabs/Projectiles/MageIceBolt")); // MageIceBolt
            var projDamage     = plasmoidProjectile.GetComponent <ProjectileDamage>();
            var projSimple     = plasmoidProjectile.GetComponent <ProjectileSimple>();
            var projController = plasmoidProjectile.GetComponent <ProjectileController>();
            var projCollider   = plasmoidProjectile.GetComponent <SphereCollider>();

            projDamage.damage          = DamageCoefficient;
            projDamage.damageType      = DamageType.Generic;
            projSimple.velocity        = 120f;
            projSimple.lifetime        = 3f;
            projController.ghostPrefab = Resources.Load <GameObject>("Prefabs/ProjectileGhosts/MageIceBoltGhost");
            projController.ghostPrefab.transform.localScale = new Vector3(1.25f, 1.25f, 1.25f);
            projController.procCoefficient = 0.9f;
            projCollider.radius            = 0.75f;

            ProjectilePrefab = plasmoidProjectile;
        }
 // Token: 0x060028B7 RID: 10423 RVA: 0x000ACD70 File Offset: 0x000AAF70
 private void OnCharacterDeath(DamageReport damageReport)
 {
     if (!damageReport.victimBody)
     {
         return;
     }
     if (damageReport.victimBody.bodyIndex != this.impBossBodyIndex)
     {
         return;
     }
     if (!base.IsCurrentBody(damageReport.damageInfo.attacker))
     {
         return;
     }
     if (ProjectileCatalog.GetProjectileIndex(damageReport.damageInfo.inflictor) != this.bfgProjectileIndex)
     {
         return;
     }
     base.Grant();
 }
コード例 #10
0
        public void SetupModdedProjectiles()
        {
            string[] moddedProjectileStrings =
            {
                // LUAFUBUKI - GAUSS //
                "Gauss0a", //"prefabs/Gauss/Gauss0a"

                // LUAFUBUKI - LUNAR CHIMERA //
                "Prefabs/Custom/LunarWispBall",
                "Prefabs/Custom/FirePillar",
                "Assets/Custom/SoulRocketProjectile",
                "Assets/Custom/LunarShardProjectile",
                //"Prefabs/Custom/MoonWave"

                // LUAFUBUKI - VOID REAVER //
                "Prefabs/Custom/ShortPortalBomb",

                // KOMRADESPECTRE - AETHERIUM //
                "JarOfReshapingProjectile",
                "SwordProjectile",

                // ZERODOMAI - TRISTANA //
                "Cannonball",
                "Explosiveball",
                "Blastball",

                // DUCKDUCKGREYDUCK - ARTIFICEREXTENDED //
                "ThunderProjectile", //Rolling Thunder
                "NapalmSpit",        //Napalm projectile
                //Napalm decal thing: NapalmFire
                "ShockwaveZapCone",
                "NanometeorImpact",  //Meteor
                "mageFireballInner", //Flame Burst 1
                "mageFireballOuter", //Flame Burst 2

                // HELTER2 - ARTIFICER2 //
                "mageIceBombClone",
                "mageLightningBombClone",

                // ROB - DIRESEEKER //
                "DireseekerBossFireball",
                "DireseekerBossGroundFireball",

                // ROB - MINER's DIRESEEKER //
                "DireseekerFireball",
                "DireseekerGroundFireball",

                // ROB - PLAYABLETEMPLAR //
                "TemplarGrenadeProjectile",
                "TemplarRocketProjectile",

                // ROB - PALADIN //
                "PaladinLunarShard",
                "LightningSpear",
                "PaladinSwordBeam",

                // ROB - TWITCH //
                "Prefabs/Projectiles/CrossbowBoltProjectile",
                "Prefabs/Projectiles/ExpungeProjectile",
                "Prefabs/Projectiles/VenomCaskProjectile",
                "Prefabs/Projectiles/TwitchBazookaProjectile",

                // RYANPALLESAN - EXPANDEDSKILLS //
                "magefireboltcopy",

                // THEMYSTICSWORD - ASPECTABILITIES //
                "AspectAbilitiesFireMissile",

                // ENIGMA - CLOUDBURST //
                "MIRVEquipmentProjectile",
                "MIRVClusterEquipmentProjectile",
                "OverchargedProjectile",
                "BombardierRocketProjectile",
                "BombardierFireRocketProjectile",
                "BombardierSeekerRocketProjectile",

                // THINKINVIS - CLASSICITEMS //
                "CIScepCommandoGrenade",
                "CIScepLoaderThundercrash",

                // CHEN - CLASSICITEMS //
                //"InstantMine", drops at feet
                //"PanicMine",
                //"FootMine",
                "MortarProjectile",

                // STARSTORM //
                "NemmandoSwordBeam",
                "ChirrDart",
                "CyborgbfgProjectile",
                "WayfarerChainProjectile",
                "NucleatorProjectile"
            };

            _logger.LogMessage("[Risk of Bulletstorm] Projectile Whitelist: Adding modded projectiles.");
            int moddedProjectilesAdded = 0;

            foreach (string projectileString in moddedProjectileStrings)
            {
                var projectileIndex = ProjectileCatalog.FindProjectileIndex(projectileString);
                //failures to find defaults to -1
                if (projectileIndex > 0)
                {
                    WhitelistedProjectiles.Add(ProjectileCatalog.GetProjectilePrefab(projectileIndex));
                    _logger.LogMessage("[Risk of Bulletstorm] Projectile Whitelist: Added projectile = " + projectileString);
                    moddedProjectilesAdded++;
                }
            }
            _logger.LogMessage("[Risk of Bulletstorm] Projectile Whitelist: Added " + moddedProjectilesAdded + " modded projectiles.");
        }