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);
            }
        }
        protected override void OnPreDrop(PlayerController user)
        {
            PassiveItem.DecrementFlag(user, typeof(PickpocketGuide));
            unstealthBehavior unstealthBehavior = user.gameObject.GetOrAddComponent <unstealthBehavior>();

            UnityEngine.Object.DestroyImmediate(unstealthBehavior);
        }
示例#3
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();
        }
示例#4
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));
        }
示例#5
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);
        }
示例#6
0
 protected override void OnDestroy()
 {
     base.OnDestroy();
     if (base.Owner != null)
     {
         PassiveItem.DecrementFlag(base.Owner, typeof(LiveAmmoItem));
     }
 }
 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);
     }
 }
示例#8
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);
     }
 }
 protected override void OnPreDrop(PlayerController user)
 {
     PassiveItem.DecrementFlag(user, typeof(LootersGloves));
     if (PassiveItem.ActiveFlagItems.ContainsKey(user) && PassiveItem.ActiveFlagItems[user].ContainsKey(typeof(CorpseExplodeActiveItem)))
     {
         PassiveItem.ActiveFlagItems[user][typeof(CorpseExplodeActiveItem)] = Mathf.Max(0, PassiveItem.ActiveFlagItems[user][typeof(CorpseExplodeActiveItem)] - 1);
         if (PassiveItem.ActiveFlagItems[user][typeof(CorpseExplodeActiveItem)] == 0)
         {
             PassiveItem.ActiveFlagItems[user].Remove(typeof(CorpseExplodeActiveItem));
         }
     }
 }
示例#10
0
        public override void Update()
        {
            if (this.LastOwner != null && vangaurd)
            {
                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)
                {
                    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, 120);

                        if (chanceToFire == 1 && enemy != host)
                        {
                            enemy.aiShooter.ShootAtTarget();
                        }
                    }
                }
            }


            base.Update();
        }
示例#11
0
        //This block of code allows us to change the reload sounds.
        protected void Update()
        {
            if (gun.CurrentOwner)
            {
                if (!gun.PreventNormalFireAudio)
                {
                    this.gun.PreventNormalFireAudio = true;
                }
                if (!gun.IsReloading && !HasReloaded)
                {
                    this.HasReloaded = true;
                }

                PassiveItem.IncrementFlag((PlayerController)this.gun.CurrentOwner, typeof(LiveAmmoItem));
            }
            else
            {
                PassiveItem.DecrementFlag((PlayerController)this.gun.CurrentOwner, typeof(LiveAmmoItem));
            }
        }
示例#12
0
 public override DebrisObject Drop(PlayerController player)
 {
     PassiveItem.DecrementFlag(player, typeof(LiveAmmoItem));
     return(base.Drop(player));
 }