Пример #1
0
        protected override void DoEffect(PlayerController user)
        {
            base.DoEffect(user);
            AIActor actor = user.CurrentRoom.GetNearestEnemy(Camera.main.ScreenToWorldPoint(Input.mousePosition), out _);

            if (actor && actor.healthHaver && !actor.healthHaver.IsBoss)
            {
                BoxOTools.AddPermanentCharm(actor);
                if (user.PlayerHasActiveSynergy("Flock Together") && user.CurrentRoom != null)
                {
                    List <AIActor> synergyActors = user.CurrentRoom.GetActiveEnemies(RoomHandler.ActiveEnemyType.All);
                    for (int i = 0; i < synergyActors.Count; i++)
                    {
                        if (Vector2.Distance(synergyActors[i].specRigidbody.UnitCenter, actor.specRigidbody.UnitCenter) < 5)
                        {
                            BoxOTools.AddPermanentCharm(synergyActors[i]);
                        }
                    }
                }
            }
            if (user.PlayerHasActiveSynergy("Birds of a Feather") && user.CurrentRoom != null)
            {
                AIActor bird = BoxOTools.SummonAtRandomPosition("ed37fa13e0fa4fcf8239643957c51293", user);
                BoxOTools.AddPermanentCharm(bird);
            }
        }
Пример #2
0
 private void OnEnemyDamaged(float damage, bool fatal, HealthHaver enemy)
 {
     if (!Owner.PlayerHasActiveSynergy("REANIMATE"))
     {
         if (fatal && enemy && enemy.aiActor && enemy.aiActor.EnemyGuid != "699cd24270af4cd183d671090d8323a1")
         {
             if (Owner.CurrentRoom != null)
             {
                 if (BoxOTools.BasicRandom(0.975f) && DoneKill)
                 {
                     try
                     {
                         AIActor aiactor = BoxOTools.SummonAtRandomPosition("699cd24270af4cd183d671090d8323a1", Owner);
                         if (base.Owner.PlayerHasActiveSynergy("keysight"))
                         {
                             aiactor.IsHarmlessEnemy = true;
                             aiactor.BecomeBlackPhantom();
                         }
                         if (!base.Owner.PlayerHasActiveSynergy("keysight"))
                         {
                             aiactor.PreventBlackPhantom = true;
                         }
                         aiactor.HandleReinforcementFallIntoRoom(0f);
                         DoneKill = false;
                     } catch (Exception Error)
                     {
                         ETGModConsole.Log(Error.Message);
                     }
                 }
             }
         }
     }
     else
     {
         if (BoxOTools.BasicRandom(0.8f) && enemy && enemy.aiActor && Owner.CurrentRoom != null && fatal)
         {
             if (BoxOTools.BasicRandom(0.3f) || base.Owner.PlayerHasActiveSynergy("keysight"))
             {
                 AIActor aiactor = BoxOTools.SummonAtRandomPosition("336190e29e8a4f75ab7486595b700d4a", Owner);
                 BoxOTools.AddPermanentCharm(aiactor);
                 aiactor.HandleReinforcementFallIntoRoom(0f);
             }
             else
             {
                 AIActor aiactor = BoxOTools.SummonAtRandomPosition("95ec774b5a75467a9ab05fa230c0c143", Owner);
                 BoxOTools.AddPermanentCharm(aiactor);
                 aiactor.HandleReinforcementFallIntoRoom(0f);
             }
         }
     }
 }