Ejemplo n.º 1
0
 public override void Update()
 {
     if (Owner && !Dungeon.IsGenerating && Owner.IsInCombat && base.transform.position.GetAbsoluteRoom() == Owner.CurrentRoom)
     {
         if (timer > 0)
         {
             timer -= BraveTime.DeltaTime;
         }
         if (timer <= 0)
         {
             this.aiAnimator.PlayUntilFinished("attack", false, null, -1f, false);
             Exploder.DoRadialKnockback(this.specRigidbody.UnitCenter, 70, 10);
             float dmg = 2.5f;
             if (PassiveItem.IsFlagSetForCharacter(this.Owner, typeof(BattleStandardItem)))
             {
                 dmg *= BattleStandardItem.BattleStandardCompanionDamageMultiplier;
             }
             if (this.Owner.CurrentGun && this.Owner.CurrentGun.LuteCompanionBuffActive)
             {
                 dmg *= 2;
             }
             Exploder.DoRadialDamage(dmg, this.specRigidbody.UnitCenter, 10, false, true, false, null);
             timer = 1.5f;
         }
     }
 }
 private void HandleCompanionPostProcessProjectile(Projectile obj)
 {
     obj.IsBulletScript = false;
     if (obj)
     {
         obj.collidesWithPlayer  = false;
         obj.collidesWithEnemies = true;
         obj.TreatedAsNonProjectileForChallenge = true;
         obj.UpdateCollisionMask();
     }
     if (this.owner)
     {
         if (PassiveItem.IsFlagSetForCharacter(this.owner, typeof(BattleStandardItem)))
         {
             obj.baseData.damage *= BattleStandardItem.BattleStandardCompanionDamageMultiplier;
         }
         if (this.owner.CurrentGun && this.owner.CurrentGun.LuteCompanionBuffActive)
         {
             obj.baseData.damage *= 2f;
         }
         if (this.owner.PlayerHasActiveSynergy("#GRIM_SUPERREAPER"))
         {
             obj.baseData.damage *= 2f;
         }
         this.owner.DoPostProcessProjectile(obj);
     }
 }
Ejemplo n.º 3
0
    // Token: 0x0600769E RID: 30366 RVA: 0x002E4CD4 File Offset: 0x002E2ED4
    private void Shoot(Vector2 targetPosition, Vector2 startOffset)
    {
        Vector2    vector      = base.transform.position.XY() + startOffset;
        Vector2    vector2     = targetPosition - vector;
        float      z           = Mathf.Atan2(vector2.y, vector2.x) * 57.29578f;
        GameObject gameObject  = this.GetProjectile().gameObject;
        GameObject gameObject2 = SpawnManager.SpawnProjectile(gameObject, vector, Quaternion.Euler(0f, 0f, z), true);
        Projectile component   = gameObject2.GetComponent <Projectile>();

        component.collidesWithEnemies = true;
        component.collidesWithPlayer  = false;
        component.Owner   = this.m_owner;
        component.Shooter = this.m_owner.specRigidbody;
        component.TreatedAsNonProjectileForChallenge = true;
        if (this.m_owner)
        {
            if (PassiveItem.IsFlagSetForCharacter(this.m_owner, typeof(BattleStandardItem)))
            {
                component.baseData.damage *= BattleStandardItem.BattleStandardCompanionDamageMultiplier;
            }
            if (this.m_owner.CurrentGun && this.m_owner.CurrentGun.LuteCompanionBuffActive)
            {
                component.baseData.damage *= 2f;
                component.RuntimeUpdateScale(1.75f);
            }
            this.m_owner.DoPostProcessProjectile(component);
        }
    }
Ejemplo n.º 4
0
            private void ApplyLinearDamage(Vector2 p1, Vector2 p2)
            {
                float damage = damagePerHit;

                if (PassiveItem.IsFlagSetForCharacter(Owner, typeof(BattleStandardItem)))
                {
                    damage *= BattleStandardItem.BattleStandardCompanionDamageMultiplier;
                }

                for (int i = 0; i < StaticReferenceManager.AllEnemies.Count; i++)
                {
                    AIActor aiactor = StaticReferenceManager.AllEnemies[i];
                    if (!this.m_damagedEnemies.Contains(aiactor))
                    {
                        if (aiactor && aiactor.HasBeenEngaged && aiactor.IsNormalEnemy && aiactor.specRigidbody)
                        {
                            Vector2 zero = Vector2.zero;
                            bool    flag = BraveUtility.LineIntersectsAABB(p1, p2, aiactor.specRigidbody.HitboxPixelCollider.UnitBottomLeft, aiactor.specRigidbody.HitboxPixelCollider.UnitDimensions, out zero);
                            if (flag)
                            {
                                aiactor.healthHaver.ApplyDamage(this.damagePerHit, Vector2.zero, "Chain Lightning", CoreDamageTypes.Electric, DamageCategory.Normal, false, null, false);
                                GameManager.Instance.StartCoroutine(this.HandleDamageCooldown(aiactor));
                            }
                        }
                    }
                }
            }
        public static void PlayerGunsnItem()
        {//used for giving player random gun and item. Initialized in hook
            PlayerController player = GameManager.Instance.PrimaryPlayer;
            bool             flag   = player == null;

            if (flag)
            {
                ETGModConsole.Log("<color=#FF0000FF>Please select a character and enter the gungeon.</color>", false);
            }
            else
            {
                Gun[] guns = UnityEngine.Resources.FindObjectsOfTypeAll <Gun>();

                PassiveItem[] passiveitems = UnityEngine.Resources.FindObjectsOfTypeAll <PassiveItem>();
                PlayerItem[]  playeritems  = UnityEngine.Resources.FindObjectsOfTypeAll <PlayerItem>();

                System.Random rnd = new System.Random();
                //ETGModConsole.Log(String.Format("Length guns {0}, passive {1}, active{2}", guns.Length, passiveitems.Length, playeritems.Length));

                int guns_count         = rnd.Next(0, guns.Length);
                int passiveitems_count = rnd.Next(0, passiveitems.Length);

                Gun         gun         = guns[guns_count];
                PassiveItem passiveitem = passiveitems[passiveitems_count];

                //ETGModConsole.Log(gun.gunName);

                PickupObject pickupgun     = PickupObjectDatabase.Instance.InternalGetById(gun.PickupObjectId);
                PickupObject pickuppassive = PickupObjectDatabase.Instance.InternalGetById(passiveitem.PickupObjectId);

                LootEngine.TryGivePrefabToPlayer(pickupgun.gameObject, Game.PrimaryPlayer, false);
                LootEngine.TryGivePrefabToPlayer(pickuppassive.gameObject, Game.PrimaryPlayer, false);
            }
        }
Ejemplo n.º 6
0
        public override void Update()
        {   // deathcontroller
            if (host != null && host.healthHaver.GetCurrentHealth() == 0)
            {
                this.LastOwner.CurrentStoneGunTimer = 1f;

                this.LastOwner.MovementModifiers -= this.NoMotionModifier;
                this.LastOwner.IsStationary       = false;
                modifierController        = 0;
                this.LastOwner.IsEthereal = false;


                this.LastOwner.SetIsStealthed(false, "cause they just are");
                PassiveItem.DecrementFlag(this.LastOwner, typeof(LiveAmmoItem));
                this.LastOwner.stats.RecalculateStats(LastOwner, true);
                CamToggle = 0;
                GameManager.Instance.MainCameraController.StartTrackingPlayer();
                GameManager.Instance.MainCameraController.SetManualControl(false, true);
            }

            if (host != null && CamToggle == 1)
            {
                // in head state
                CameraController m_camera = GameManager.Instance.MainCameraController;
                m_camera.StopTrackingPlayer();
                m_camera.SetManualControl(true, false);
                m_camera.OverridePosition = host.CenterPosition;
                TargetNumber1(host, this.LastOwner);
                RoomHandler room = this.LastOwner.CurrentRoom;
                proximity(this.LastOwner);
                foreach (var enemy in room.GetActiveEnemies(RoomHandler.ActiveEnemyType.All))
                {
                    System.Random rng          = new System.Random();
                    int           chanceToFire = rng.Next(1, 80);

                    if (chanceToFire == 1 && enemy != host)
                    {
                        enemy.aiShooter.ShootAtTarget();
                    }
                }
                //poison
                List <AIActor> activeEnemies  = base.LastOwner.CurrentRoom.GetActiveEnemies(RoomHandler.ActiveEnemyType.All);
                Vector2        centerPosition = host.specRigidbody.UnitCenter;
                foreach (AIActor aiactor in activeEnemies)
                {
                    bool flag3 = Vector2.Distance(aiactor.CenterPosition, centerPosition) < 1.5f && aiactor.healthHaver.GetMaxHealth() > 0f && aiactor != null && aiactor.specRigidbody != null && base.LastOwner != null;

                    if (flag3 && aiactor != host)
                    {
                        aiactor.ApplyEffect(Game.Items["irradiated_lead"].GetComponent <BulletStatusEffectItem>().HealthModifierEffect, 4f, null);
                        aiactor.ApplyEffect(Game.Items["hot_lead"].GetComponent <BulletStatusEffectItem>().HealthModifierEffect, 4f, null);
                        aiactor.ApplyEffect(Game.Items["battery_bullets"].GetComponent <BulletStatusEffectItem>().HealthModifierEffect, 4f, null);
                    }
                }
            }



            base.Update();
        }
Ejemplo n.º 7
0
            void FixedUpdate()
            {
                if (Time.time - lastSwitch > switchTime)
                {
                    SetGoopIndex(Random.Range(1, goopDefs.Count));

                    lastSwitch = Time.time;
                    this.aiActor.OverrideTarget = this.m_owner?.CurrentRoom?.GetRandomActiveEnemy(false)?.specRigidbody;
                }

                if (!this.m_owner.IsInCombat)
                {
                    SetGoopIndex(0);
                }

                sprite.color = Color.Lerp(sprite.color, tint, .1f);


                float circleSize = .5f;

                if (PassiveItem.IsFlagSetForCharacter(m_owner, typeof(BattleStandardItem)))
                {
                    circleSize *= 2;
                }

                var ddgm = DeadlyDeadlyGoopManager.GetGoopManagerForGoopType(currentGoop);

                ddgm.AddGoopCircle(sprite.WorldCenter, circleSize);

                //if (currentGoop.name.Contains("water"))
                //ddgm.ElectrifyGoopCircle(sprite.WorldBottomCenter, 1);
            }
Ejemplo n.º 8
0
    public override void OnPickUp(PlayerItemPickUpData data)
    {
        // Get Item Reference
        PassiveItem passiveItem = Item as PassiveItem;

        // Spawn Item
        if (Item.gameObject.IsPrefab())
        {
            passiveItem = ItemDB.Inst.SpawnItem(Item.GetType()).GetComponent <PassiveItem>();
        }

        // Add To Inventory
        if (PlayerInventoryManager.passiveInventory.TryUpgradeItem(passiveItem.GetType()))
        {
            Destroy(passiveItem.gameObject);
            goto EXIT;
        }

        if (PlayerInventoryManager.passiveInventory.TryAddItem(passiveItem))
        {
            goto EXIT;
        }

        return;

EXIT:
        Destroy(gameObject);
    }
        protected override void DoEffect(PlayerController player)
        {
            if (numberOfUses == 2)
            {
                Vector2 vector    = player.unadjustedAimPoint.XY() - player.CenterPosition;
                float   zRotation = BraveMathCollege.Atan2Degrees(vector);
                player.StartCoroutine(this.HandleSwing(player, vector, 0f, 20f));
            }
            if (numberOfUses == 1)
            {
                player.CurrentStoneGunTimer = 1f;

                player.MovementModifiers -= this.NoMotionModifier;
                player.IsStationary       = false;
                modifierController        = 0;
                player.IsEthereal         = false;

                if (host != null)
                {
                    host.healthHaver.ApplyDamage(99999, Vector2.zero, "unbound", CoreDamageTypes.Magic, DamageCategory.Unstoppable, true, null, false);
                    host = null;
                }

                player.SetIsStealthed(false, "cause they just are");
                PassiveItem.DecrementFlag(player, typeof(LiveAmmoItem));
                this.LastOwner.stats.RecalculateStats(LastOwner, true);
                CamToggle = 0;
                GameManager.Instance.MainCameraController.StartTrackingPlayer();
                GameManager.Instance.MainCameraController.SetManualControl(false, true);
            }
        }
Ejemplo n.º 10
0
        public static void AddStat(this PassiveItem item, PlayerStats.StatType statType, float amount, StatModifier.ModifyMethod method = StatModifier.ModifyMethod.ADDITIVE)
        {
            StatModifier statModifier = new StatModifier
            {
                amount      = amount,
                statToBoost = statType,
                modifyType  = method
            };

            foreach (StatModifier statModifier2 in item.passiveStatModifiers)
            {
                bool flag = statModifier2.statToBoost == statType;
                if (flag)
                {
                    return;
                }
            }
            bool flag2 = item.passiveStatModifiers == null;

            if (flag2)
            {
                item.passiveStatModifiers = new StatModifier[]
                {
                    statModifier
                };
                return;
            }
            item.passiveStatModifiers = item.passiveStatModifiers.Concat(new StatModifier[]
            {
                statModifier
            }).ToArray <StatModifier>();
        }
        protected override void OnPreDrop(PlayerController user)
        {
            PassiveItem.DecrementFlag(user, typeof(PickpocketGuide));
            unstealthBehavior unstealthBehavior = user.gameObject.GetOrAddComponent <unstealthBehavior>();

            UnityEngine.Object.DestroyImmediate(unstealthBehavior);
        }
Ejemplo n.º 12
0
    private void onPassiveItemCollected(Character character, int ItemID)
    {
        CharacterStats characterStats = character.characterStats;
        PassiveItem    passiveItem    = passiveItemLibrary[ItemID];

        characterStats.MaxHealth   += passiveItem.maxHealth;
        characterStats.HealthRegen += passiveItem.healthRegen;

        characterStats.MaxEnergy           += passiveItem.maxEnergy;
        characterStats.EnergyRegen         += passiveItem.energyRegen;
        characterStats.ShootEnergyCost     += passiveItem.shootEnergyCost;
        characterStats.SpecialMovementCost += passiveItem.specialMovementCost;
        characterStats.ShieldEnergyRate    += passiveItem.shieldEnergyRate;

        characterStats.RateOfFire           /= passiveItem.rateOfFire; //rate of fire will always be handled by division;
        characterStats.DamageDealt          += passiveItem.damageDealt;
        characterStats.ProjectileSpeed      += passiveItem.projectileSpeed;
        characterStats.ProjectileLifeSpan   += passiveItem.projectileLifeSpan;
        characterStats.MovementSpeed        += passiveItem.movementSpeed;
        characterStats.SpecialMovementSpeed += passiveItem.specialMovementSpeed;

        if (passiveItem.characterModelChange)
        {
            playerVisualLibrary[ItemID](characterStats);
            characterStats.updateProjectile();
        }

        Messenger <CharacterStats> .Broadcast(GameEvent.CHARACTER_UPDATED, characterStats);
    }
Ejemplo n.º 13
0
    private void Awake() //Build all Activatable Items, decode passive items json,
    {
        passiveItemLibrary = new Dictionary <int, PassiveItem>();

        string m_PassiveItemsPath = Application.dataPath + "/PassiveItems.json";
        string json;

        var fileStream = new FileStream(m_PassiveItemsPath, FileMode.Open, FileAccess.Read);

        using (var streamReader = new StreamReader(fileStream, Encoding.UTF8))
        {
            while ((json = streamReader.ReadLine()) != null)
            {
                PassiveItem currPassiveItem = JsonUtility.FromJson <PassiveItem>(@json);
                passiveItemLibrary[currPassiveItem.ID] = currPassiveItem;
            }
        }


        Debug.Log("Passive Item Library populated");



        playerVisualLibrary = new Dictionary <int, System.Action <CharacterStats> >();



        Messenger <Character, int> .AddListener(GameEvent.PASSIVE_ITEM_COLLECTED, onPassiveItemCollected);
    }
Ejemplo n.º 14
0
        // Token: 0x06007CE5 RID: 31973 RVA: 0x00316054 File Offset: 0x00314254
        public void Interact(PlayerController interactor)
        {
            if (!PassiveItem.IsFlagSetAtAll(typeof(CatchingMitts)) || base.projectile == null)
            {
                return;
            }
            PlayerController player = GameManager.Instance.PrimaryPlayer;

            CatchingMitts.cooldownBehavior cooldownBehavior = player.GetComponent <CatchingMitts.cooldownBehavior>();
            if (cooldownBehavior.parentItem.cooldown > 0.25f)
            {
                base.projectile.DieInAir(false, true, true, false);
                this.m_room.DeregisterInteractable(this);
                SpriteOutlineManager.RemoveOutlineFromSprite(base.sprite, false);
                if (player.PlayerHasActiveSynergy("Shortstop"))
                {
                    player.CurrentGun.GainAmmo(1);
                }
                else if (UnityEngine.Random.value <= 0.5f)
                {
                    player.CurrentGun.GainAmmo(1);
                }
                cooldownBehavior.parentItem.cooldown = 0f;
            }
        }
 protected void HandleForgeHammerPostProcessProjectile(Projectile obj)
 {
     if (obj)
     {
         obj.collidesWithPlayer  = false;
         obj.collidesWithEnemies = true;
         obj.TreatedAsNonProjectileForChallenge = true;
         if (m_Owner)
         {
             if (PassiveItem.IsFlagSetForCharacter(m_Owner, typeof(BattleStandardItem)))
             {
                 obj.baseData.damage *= BattleStandardItem.BattleStandardCompanionDamageMultiplier;
             }
             if (m_Owner.CurrentGun && m_Owner.CurrentGun.LuteCompanionBuffActive)
             {
                 obj.baseData.damage *= 2f;
                 obj.RuntimeUpdateScale(1f / obj.AdditionalScaleMultiplier);
                 obj.RuntimeUpdateScale(1.75f);
             }
             obj.baseData.damage *= 5f;
             m_Owner.DoPostProcessProjectile(obj);
         }
         else
         {
             obj.baseData.damage *= 4;
         }
     }
 }
Ejemplo n.º 16
0
        public override DebrisObject Drop(PlayerController player)
        {
            DebrisObject debrisObject = base.Drop(player);

            debrisObject.GetComponent <Hoverboard>().m_pickedUpThisRun = true;
            PassiveItem.DecrementFlag(player, typeof(WingsItem));
            return(debrisObject);
        }
Ejemplo n.º 17
0
        public void ctor(PassiveItem p)
        {
            object_ctor();

            ItemID         = ((Semi.Patches.PickupObject)(global::PickupObject) p).UniqueItemID;
            SerializedData = new List <object>();
            p.MidGameSerialize(SerializedData);
        }
Ejemplo n.º 18
0
 protected override void OnDestroy()
 {
     base.OnDestroy();
     if (base.Owner != null)
     {
         PassiveItem.DecrementFlag(base.Owner, typeof(LiveAmmoItem));
     }
 }
Ejemplo n.º 19
0
        public override DebrisObject Drop(PlayerController player)
        {
            PassiveItem.DecrementFlag(player, typeof(CatchingMitts));
            cooldownBehavior cooldownBehavior = player.gameObject.GetComponent <cooldownBehavior>();

            UnityEngine.Object.Destroy(cooldownBehavior);
            return(base.Drop(player));
        }
Ejemplo n.º 20
0
            private IEnumerator DoLaserAttack()
            {
                isAttacking = true;
                this.aiAnimator.PlayUntilFinished("attack", false, null, -1f, false);
                yield return(new WaitForSeconds(0.5f));

                //Start Firing Lasers
                this.aiActor.MovementSpeed *= 0.0001f;
                this.aiAnimator.PlayForDuration("contattack", 1);
                Projectile beamToFire = LaserBullets.SimpleRedBeam.projectile;

                if (UnityEngine.Random.value <= 0.5f)
                {
                    int angle = 135;
                    for (int i = 0; i < 4; i++)
                    {
                        BeamController beam = BeamToolbox.FreeFireBeamFromAnywhere(beamToFire, this.m_owner, this.gameObject, Vector2.zero, false, angle, 1, true);
                        Projectile     beamprojcomponent = beam.GetComponent <Projectile>();
                        beamprojcomponent.baseData.damage *= 3f;
                        if (PassiveItem.IsFlagSetForCharacter(this.Owner, typeof(BattleStandardItem)))
                        {
                            beamprojcomponent.baseData.damage *= BattleStandardItem.BattleStandardCompanionDamageMultiplier;
                        }
                        if (this.Owner.CurrentGun && this.Owner.CurrentGun.LuteCompanionBuffActive)
                        {
                            beamprojcomponent.baseData.damage *= 2;
                        }
                        angle -= 90;
                    }
                }
                else
                {
                    int angle = 180;
                    for (int i = 0; i < 4; i++)
                    {
                        BeamController beam = BeamToolbox.FreeFireBeamFromAnywhere(beamToFire, this.m_owner, this.gameObject, Vector2.zero, false, angle, 1, true);
                        Projectile     beamprojcomponent = beam.GetComponent <Projectile>();
                        beamprojcomponent.baseData.damage *= 3f;
                        if (PassiveItem.IsFlagSetForCharacter(this.Owner, typeof(BattleStandardItem)))
                        {
                            beamprojcomponent.baseData.damage *= BattleStandardItem.BattleStandardCompanionDamageMultiplier;
                        }
                        if (this.Owner.CurrentGun && this.Owner.CurrentGun.LuteCompanionBuffActive)
                        {
                            beamprojcomponent.baseData.damage *= 2;
                        }
                        angle -= 90;
                    }
                }
                yield return(new WaitForSeconds(1f));

                //Stop shit
                isAttacking = false;
                timer       = 1.5f;
                this.aiActor.MovementSpeed /= 0.0001f;
                yield break;
            }
Ejemplo n.º 21
0
        public static void RemovePassiveItem(PlayerController self, PassiveItem passive)
        {
            int num = self.passiveItems.IndexOf(passive);

            if (num >= 0)
            {
                TakeableEnemy.RemovePassiveItemAt(self, num);
            }
        }
Ejemplo n.º 22
0
        public static void RemovePassiveItemAt(PlayerController self, int index)
        {
            PassiveItem passiveItem = self.passiveItems[index];

            self.passiveItems.RemoveAt(index);
            GameUIRoot.Instance.RemovePassiveItemFromDock(passiveItem);
            UnityEngine.Object.Destroy(passiveItem);
            self.stats.RecalculateStats(self, false, false);
        }
 // Token: 0x06007CE4 RID: 31972 RVA: 0x00316033 File Offset: 0x00314233
 public void OnExitRange(PlayerController interactor)
 {
     if (!PassiveItem.IsFlagSetAtAll(typeof(PickpocketGuide)))
     {
         return;
     }
     SpriteOutlineManager.RemoveOutlineFromSprite(base.sprite, true);
     SpriteOutlineManager.AddOutlineToSprite(base.sprite, Color.black);
 }
 private void Start()
 {
     if (!PassiveItem.IsFlagSetAtAll(typeof(PickpocketGuide)))
     {
         return;
     }
     this.m_room = GameManager.Instance.Dungeon.data.GetAbsoluteRoomFromPosition(base.transform.position.IntXY(VectorConversions.Round));
     this.m_room.RegisterInteractable(this);
 }
Ejemplo n.º 25
0
        public static void RemovePassiveItemAtIndex(this PlayerController player, int index)
        {
            PassiveItem passiveItem = player.passiveItems[index];

            GameUIRoot.Instance.RemovePassiveItemFromDock(passiveItem);
            player.passiveItems.RemoveAt(index);
            UnityEngine.Object.Destroy(passiveItem);
            player.stats.RecalculateStats(player, false, false);
        }
		// Token: 0x06007CE3 RID: 31971 RVA: 0x0026DAFF File Offset: 0x0026BCFF
		public void OnEnteredRange(PlayerController interactor)
		{
            if (!PassiveItem.IsFlagSetAtAll(typeof(LootersGloves)))
            {
				return;
            }
			SpriteOutlineManager.RemoveOutlineFromSprite(base.sprite, true);
			SpriteOutlineManager.AddOutlineToSprite(base.sprite, Color.white);
		}
Ejemplo n.º 27
0
 // Token: 0x06007CE4 RID: 31972 RVA: 0x00316033 File Offset: 0x00314233
 public void OnExitRange(PlayerController interactor)
 {
     if (!PassiveItem.IsFlagSetAtAll(typeof(CatchingMitts)) || !base.sprite || !base.projectile)
     {
         return;
     }
     SpriteOutlineManager.RemoveOutlineFromSprite(base.sprite, true);
     SpriteOutlineManager.AddOutlineToSprite(base.sprite, Color.black);
 }
		private void Start()
		{
			if (!PassiveItem.IsFlagSetAtAll(typeof(LootersGloves)))
			{
				return;
			}
			this.m_room = GameManager.Instance.Dungeon.data.GetAbsoluteRoomFromPosition(base.transform.position.IntXY(VectorConversions.Round));
			this.m_room.RegisterInteractable(this);
			SpriteOutlineManager.AddOutlineToSprite(base.sprite, Color.black);
		}
 protected override void OnDestroy()
 {
     base.OnDestroy();
     if (base.LastOwner != null)
     {
         PassiveItem.DecrementFlag(base.LastOwner, typeof(PickpocketGuide));
         unstealthBehavior unstealthBehavior = base.LastOwner.gameObject.GetOrAddComponent <unstealthBehavior>();
         UnityEngine.Object.DestroyImmediate(unstealthBehavior);
     }
 }
Ejemplo n.º 30
0
 protected override void OnDestroy()
 {
     base.OnDestroy();
     if (base.Owner != null)
     {
         PlayerController player = base.Owner;
         PassiveItem.DecrementFlag(player, typeof(CatchingMitts));
         cooldownBehavior cooldownBehavior = player.gameObject.GetComponent <cooldownBehavior>();
         UnityEngine.Object.Destroy(cooldownBehavior);
     }
 }