private void ClearDamageResistance(GameActorEffect effect) { if (effect != null) { effect.resistanceType = EffectResistanceType.None; effect.effectIdentifier = "Setting This To Something Different Is Needed, So..."; } }
private void FullRoomStatusEffect(GameActorEffect effect) { List <AIActor> activeEnemies = Owner.CurrentRoom.GetActiveEnemies(RoomHandler.ActiveEnemyType.All); if (activeEnemies != null) { for (int i = 0; i < activeEnemies.Count; i++) { AIActor aiactor = activeEnemies[i]; if (aiactor.IsNormalEnemy) { aiactor.gameActor.ApplyEffect(effect, 1f, null); } } } }
// Token: 0x06000173 RID: 371 RVA: 0x00013268 File Offset: 0x00011468 public static GameActorEffect CopyEffectFrom(this GameActorEffect self, GameActorEffect other) { bool flag = self == null || other == null; GameActorEffect result; if (flag) { result = null; } else { self.AffectsPlayers = other.AffectsPlayers; self.AffectsEnemies = other.AffectsEnemies; self.effectIdentifier = other.effectIdentifier; self.resistanceType = other.resistanceType; self.stackMode = other.stackMode; self.duration = other.duration; self.maxStackedDuration = other.maxStackedDuration; self.AppliesTint = other.AppliesTint; self.TintColor = new Color { r = other.TintColor.r, g = other.TintColor.g, b = other.TintColor.b }; self.AppliesDeathTint = other.AppliesDeathTint; self.DeathTintColor = new Color { r = other.DeathTintColor.r, g = other.DeathTintColor.g, b = other.DeathTintColor.b }; self.AppliesOutlineTint = other.AppliesOutlineTint; self.OutlineTintColor = new Color { r = other.OutlineTintColor.r, g = other.OutlineTintColor.g, b = other.OutlineTintColor.b }; self.OverheadVFX = other.OverheadVFX; self.PlaysVFXOnActor = other.PlaysVFXOnActor; result = self; } return(result); }
private void HandleHit(Projectile arg1, SpeculativeRigidbody arg2, bool arg3) { if (arg2.aiActor != null && !arg2.healthHaver.IsBoss && !arg2.healthHaver.IsDead && arg2.aiActor.behaviorSpeculator && !arg2.aiActor.IsHarmlessEnemy && arg2.aiActor != null) { GameActorEffect poison = arg2.aiActor.GetEffect(DeadlyDeadlyGoopManager.GetGoopManagerForGoopType(goopDefs[0]).goopDefinition.HealthModifierEffect.effectIdentifier); if (poison != null) { AIActor orLoadByGuid = EnemyDatabase.GetOrLoadByGuid("8b43a5c59b854eb780f9ab669ec26b7a"); arg2.aiActor.EraseFromExistenceWithRewards(true); AIActor aiactor = AIActor.Spawn(orLoadByGuid, arg2.aiActor.CenterPosition, arg2.transform.position.GetAbsoluteRoom(), true, AIActor.AwakenAnimationType.Awaken, true); LootEngine.DoDefaultItemPoof(aiactor.CenterPosition, false, false); aiactor.DiesOnCollison = true; aiactor.ImmuneToAllEffects = true; //arg2.aiActor.Transmogrify(orLoadByGuid, (GameObject)ResourceCache.Acquire("Global VFX/VFX_Item_Spawn_Poof")); } } }
protected override void DoEffect(PlayerController user) { if (this.fleeData == null || this.fleeData.Player != base.LastOwner) { this.fleeData = new FleePlayerData(); this.fleeData.Player = base.LastOwner; this.fleeData.StartDistance *= 10f; } base.StartCoroutine(ItemBuilder.HandleDuration(this, this.duration, user, new Action <PlayerController>(this.EndEffect))); base.StartCoroutine(this.HandleDuration(user)); base.StartCoroutine(this.FearDuration(user)); GameActorEffect greenFire = (PickupObjectDatabase.GetById(722) as Gun).DefaultModule.projectiles[0].fireEffect; foreach (AIActor aiactor in user.CurrentRoom.GetActiveEnemies(RoomHandler.ActiveEnemyType.RoomClear)) { aiactor.ApplyEffect(greenFire); } }
private void HandleHit(Projectile arg1, SpeculativeRigidbody arg2, bool arg3) { bool flag = arg2.aiActor != null && !arg2.healthHaver.IsBoss && !arg2.healthHaver.IsDead && arg2.aiActor.behaviorSpeculator && !arg2.aiActor.IsHarmlessEnemy && arg2.aiActor != null; if (flag) { GameActorEffect effect = arg2.aiActor.GetEffect(DeadlyDeadlyGoopManager.GetGoopManagerForGoopType(SynergyAlchemiser.goopDefs[0]).goopDefinition.HealthModifierEffect.effectIdentifier); bool flag2 = effect != null; if (flag2) { AIActor orLoadByGuid = EnemyDatabase.GetOrLoadByGuid("8b43a5c59b854eb780f9ab669ec26b7a"); arg2.aiActor.EraseFromExistenceWithRewards(true); AIActor aiactor = AIActor.Spawn(orLoadByGuid, arg2.aiActor.CenterPosition, arg2.transform.position.GetAbsoluteRoom(), true, AIActor.AwakenAnimationType.Awaken, true); LootEngine.DoDefaultItemPoof(aiactor.CenterPosition, false, false); aiactor.DiesOnCollison = true; aiactor.ImmuneToAllEffects = true; } } }
private IEnumerator HandleHeatEffectsCR(float Radius, float Duration, GameActorEffect gameActorEffect, tk2dBaseSprite Psprite) { Psprite = m_owner.sprite; float elapsed = 0f; RoomHandler r = Psprite.transform.position.GetAbsoluteRoom(); Vector3 tableCenter = Psprite.WorldCenter.ToVector3ZisY(0f); Action <AIActor, float> AuraAction = delegate(AIActor actor, float dist) { actor.healthHaver.ApplyDamage(.1f * (m_owner.stats.GetStatModifier(PlayerStats.StatType.Damage)), Vector2.zero, "primaryPlayer"); }; while (elapsed < TDuration) { elapsed += BraveTime.DeltaTime; r.ApplyActionToNearbyEnemies(tableCenter.XY(), TRadius, AuraAction); yield return(null); } yield break; }
public static void ExplosiveHook(Action <ExplosiveModifier, Vector2, bool, CollisionData> orig, ExplosiveModifier self, Vector2 sourceNormal, bool ignoreDamageCaps = false, CollisionData cd = null) { if (self.projectile && self.projectile.Owner) { if (self.projectile.Owner is PlayerController) { for (int i = 0; i < GameManager.Instance.AllPlayers.Length; i++) { PlayerController playerController = GameManager.Instance.AllPlayers[i]; if (playerController && playerController.specRigidbody) { if (playerController.HasPickupID(ETGMod.Databases.Items["Nuclear Talisman"].PickupObjectId)) { self.explosionData.ignoreList.Remove(playerController.specRigidbody); self.explosionData.damageToPlayer = 4; if (playerController.HasPickupID(ETGMod.Databases.Items["Boiling Veins"].PickupObjectId) & playerController.healthHaver.GetCurrentHealth() <= 2) { self.explosionData.ignoreList.Add(playerController.specRigidbody); } } else { self.explosionData.ignoreList.Add(playerController.specRigidbody); } } } } else { self.explosionData.ignoreList.Add(self.projectile.Owner.specRigidbody); } } Vector3 vector = (cd == null) ? self.specRigidbody.UnitCenter.ToVector3ZUp(0f) : cd.Contact.ToVector3ZUp(0f); if (self.doExplosion) { CoreDamageTypes coreDamageTypes = CoreDamageTypes.None; if (self.explosionData.doDamage && self.explosionData.damageRadius < 10f && self.projectile) { if (self.projectile.AppliesFreeze) { coreDamageTypes |= CoreDamageTypes.Ice; } if (self.projectile.AppliesFire) { coreDamageTypes |= CoreDamageTypes.Fire; } if (self.projectile.AppliesPoison) { coreDamageTypes |= CoreDamageTypes.Poison; } if (self.projectile.statusEffectsToApply != null) { for (int j = 0; j < self.projectile.statusEffectsToApply.Count; j++) { GameActorEffect gameActorEffect = self.projectile.statusEffectsToApply[j]; if (gameActorEffect is GameActorFreezeEffect) { coreDamageTypes |= CoreDamageTypes.Ice; } else if (gameActorEffect is GameActorFireEffect) { coreDamageTypes |= CoreDamageTypes.Fire; } else if (gameActorEffect is GameActorHealthEffect) { coreDamageTypes |= CoreDamageTypes.Poison; } } } } Exploder.Explode(vector, self.explosionData, sourceNormal, null, self.IgnoreQueues, coreDamageTypes, ignoreDamageCaps); } if (self.doDistortionWave) { Exploder.DoDistortionWave(vector, self.distortionIntensity, self.distortionRadius, self.maxDistortionRadius, self.distortionDuration); } }