예제 #1
0
        private void Awake()
        {
            Log("Added Kin MonoBehaviour");

            if (!PlayerData.instance.infectedKnightDreamDefeated)
            {
                return;
            }
            if (!LostLord.Instance.IsInHall)
            {
                return;
            }

            ModHooks.Instance.ObjectPoolSpawnHook    += Projectile;
            On.EnemyDeathEffects.EmitInfectedEffects += OnEmitInfected;
            On.EnemyDeathEffects.EmitEffects         += No;
            On.EnemyDeathEffects.EmitCorpse          += EmitCorpse;
            On.InfectedEnemyEffects.RecieveHitEffect += RecieveHit;
            UnityEngine.SceneManagement.SceneManager.activeSceneChanged += OnDestroy2;

            _hm           = gameObject.GetComponent <HealthManager>();
            _stunControl  = gameObject.LocateMyFSM("Stun Control");
            _balloons     = gameObject.LocateMyFSM("Spawn Balloon");
            _anim         = gameObject.GetComponent <tk2dSpriteAnimator>();
            _control      = gameObject.LocateMyFSM("IK Control");
            _recoil       = gameObject.GetComponent <Recoil>();
            _enemyEffects = gameObject.GetComponent <InfectedEnemyEffects>();
        }
예제 #2
0
        // Taken and modified from https://github.com/5FiftySix6/HollowKnight.Lost-Lord/blob/master/LostLord/Kin.cs
        private void ReceiveHit(On.InfectedEnemyEffects.orig_RecieveHitEffect orig, InfectedEnemyEffects self, float attack_direction)
        {
            if (self.GetAttr <bool>("didFireThisFrame"))
            {
                return;
            }

            if (self.GetAttr <SpriteFlash>("spriteFlash") != null)
            {
                self.GetAttr <SpriteFlash>("spriteFlash").flashFocusHeal();
            }

            FSMUtility.SendEventToGameObject(gameObject, "DAMAGE FLASH", true);
            self.GetAttr <AudioEvent>("impactAudio").SpawnAndPlayOneShot(self.GetAttr <AudioSource>("audioSourcePrefab"), self.transform.position);
            self.SetAttr("didFireThisFrame", true);
        }