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>(); } }
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(); } } } }
// 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); }
// 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(); }