public static float GetDegreeToNearestEnemy(this Projectile bullet) { Vector2 dirVec = UnityEngine.Random.insideUnitCircle; Vector2 bulletPosition = bullet.sprite.WorldCenter; Func <AIActor, bool> isValid = (AIActor a) => a && a.HasBeenEngaged && a.healthHaver && a.healthHaver.IsVulnerable; IntVector2 bulletPositionIntVector2 = bulletPosition.ToIntVector2(); AIActor closestToPosition = BraveUtility.GetClosestToPosition <AIActor>(GameManager.Instance.Dungeon.data.GetAbsoluteRoomFromPosition(bulletPositionIntVector2).GetActiveEnemies(RoomHandler.ActiveEnemyType.All), bullet.sprite.WorldCenter, isValid, new AIActor[] { }); if (closestToPosition) { dirVec = closestToPosition.CenterPosition - bullet.transform.position.XY(); } return(MiscToolbox.Vector2ToDegree(dirVec)); }
private void DoSynergyShields(RoomHandler room, PlayerController user) { //ETGModConsole.Log("Did Synergy Shields"); CurrencyPickup[] allShit = FindObjectsOfType <CurrencyPickup>(); foreach (CurrencyPickup shit in allShit) { //ETGModConsole.Log("Found a casing"); if (shit.transform.position.GetAbsoluteRoom() == room) { //ETGModConsole.Log("Casing was in room"); MiscToolbox.SpawnShield(user, shit.sprite.WorldCenter); //ETGModConsole.Log("Spawned shield"); } } }
// Token: 0x06007230 RID: 29232 RVA: 0x002D6104 File Offset: 0x002D4304 protected override void DoEffect(PlayerController user) { if (user.PlayerHasActiveSynergy("G is for Gain")) { user.carriedConsumables.Currency -= 1; } else { user.carriedConsumables.Currency -= 3; } MiscToolbox.SpawnShield(user, user.sprite.WorldCenter); if (user.PlayerHasActiveSynergy("Prototype Form")) { DoSynergyShields(user.CurrentRoom, user); } }
public void Start() { this.m_projectile = base.GetComponent <Projectile>(); RoomHandler currentRoom = MiscToolbox.GetAbsoluteRoomFromProjectile(this.m_projectile); if (currentRoom != Primos1.lastFiredRoom) { this.m_projectile.baseData.speed *= 0.5f; this.m_projectile.baseData.damage *= 6.3f; PierceProjModifier pierce = this.m_projectile.gameObject.GetOrAddComponent <PierceProjModifier>(); pierce.penetration = 1000; BounceProjModifier bounce = this.m_projectile.gameObject.GetOrAddComponent <BounceProjModifier>(); bounce.numberOfBounces = 1; this.m_projectile.RuntimeUpdateScale(2); this.m_projectile.UpdateSpeed(); Primos1.lastFiredRoom = currentRoom; } }
private void SpawnShieldOnDestroy(Projectile self) { MiscToolbox.SpawnShield(self.ProjectilePlayerOwner(), self.sprite.WorldCenter); }