Exemplo n.º 1
0
 public static void lareth_abandon(GameObject attachee, GameObject triggerer)
 {
     SelectedPartyLeader.RemoveFollower(attachee);
     return;
 }
Exemplo n.º 2
0
    public override bool OnEnterCombat(GameObject attachee, GameObject triggerer)
    {
        if (SelectedPartyLeader.GetPartyMembers().Any(o => o.HasFollowerByName(8730)))
        {
            var ron = Utilities.find_npc_near(SelectedPartyLeader, 8730);
            if (ron != null)
            {
                SelectedPartyLeader.RemoveFollower(ron);
            }
        }

        if ((!GetGlobalFlag(816) && !GetGlobalFlag(818)))
        {
            SetGlobalFlag(818, true);
            foreach (var target in PartyLeader.GetPartyMembers())
            {
                if ((target.GetNameId() != 8072 && attachee.DistanceTo(target) <= 20 && target.type == ObjectType.pc))
                {
                    attachee.TurnTowards(target);
                    target.BeginDialog(attachee, 2000);
                    return(SkipDefault);
                }
            }

            attachee.FloatLine(2010, triggerer);
            var terjonLoc = attachee.GetLocation();
            terjonLoc.locx -= 4;
            var terjon = GameSystems.MapObject.CreateObject(14007, terjonLoc);
            AttachParticles("sp-Dimension Door", terjon);
            terjon.TurnTowards(attachee);
            var calmert = attachee.GetInitiative();
            terjon.AddToInitiative();
            terjon.SetInitiative(calmert);
            UiSystems.Combat.Initiative.UpdateIfNeeded();
            terjon.Attack(triggerer);
        }

        foreach (var npc in PartyLeader.GetPartyMembers())
        {
            if ((npc.GetNameId() == 8072 && npc.GetLeader() != null && !GetGlobalFlag(819)))
            {
                var curr = npc.GetStat(Stat.hp_current);
                if ((curr >= 1))
                {
                    foreach (var target in PartyLeader.GetPartyMembers())
                    {
                        if ((target.GetNameId() != 8072 && npc.DistanceTo(target) <= 20 && target.type == ObjectType.pc))
                        {
                            npc.TurnTowards(target);
                            target.BeginDialog(npc, 1000);
                            return(SkipDefault);
                        }
                    }
                }
            }
        }

        if (triggerer.GetPartyMembers().Any(o => o.HasFollowerByName(8000)))
        {
            var elmo = Utilities.find_npc_near(triggerer, 8000);
            if ((elmo != null))
            {
                triggerer.RemoveFollower(elmo);
                elmo.FloatLine(12021, triggerer);
                elmo.Attack(triggerer);
            }
        }

        if (triggerer.GetPartyMembers().Any(o => o.HasFollowerByName(8001)))
        {
            var paida = Utilities.find_npc_near(triggerer, 8001);
            if ((paida != null))
            {
                triggerer.RemoveFollower(paida);
                paida.FloatLine(12021, triggerer);
                paida.Attack(triggerer);
            }
        }

        if (triggerer.GetPartyMembers().Any(o => o.HasFollowerByName(8014)))
        {
            var otis = Utilities.find_npc_near(triggerer, 8014);
            if ((otis != null))
            {
                triggerer.RemoveFollower(otis);
                otis.FloatLine(12021, triggerer);
                otis.Attack(triggerer);
            }
        }

        if (triggerer.GetPartyMembers().Any(o => o.HasFollowerByName(8015)))
        {
            var meleny = Utilities.find_npc_near(triggerer, 8015);
            if ((meleny != null))
            {
                triggerer.RemoveFollower(meleny);
                meleny.FloatLine(12021, triggerer);
                meleny.Attack(triggerer);
            }
        }

        if (triggerer.GetPartyMembers().Any(o => o.HasFollowerByName(8021)))
        {
            var ydey = Utilities.find_npc_near(triggerer, 8021);
            if ((ydey != null))
            {
                triggerer.RemoveFollower(ydey);
                ydey.FloatLine(12021, triggerer);
                ydey.Attack(triggerer);
            }
        }

        if (triggerer.GetPartyMembers().Any(o => o.HasFollowerByName(8022)))
        {
            var murfles = Utilities.find_npc_near(triggerer, 8022);
            if ((murfles != null))
            {
                triggerer.RemoveFollower(murfles);
                murfles.FloatLine(12021, triggerer);
                murfles.Attack(triggerer);
            }
        }

        if (triggerer.GetPartyMembers().Any(o => o.HasFollowerByName(8031)))
        {
            var thrommel = Utilities.find_npc_near(triggerer, 8031);
            if ((thrommel != null))
            {
                triggerer.RemoveFollower(thrommel);
                thrommel.FloatLine(12021, triggerer);
                thrommel.Attack(triggerer);
            }
        }

        if (triggerer.GetPartyMembers().Any(o => o.HasFollowerByName(8039)))
        {
            var taki = Utilities.find_npc_near(triggerer, 8039);
            if ((taki != null))
            {
                triggerer.RemoveFollower(taki);
                taki.FloatLine(12021, triggerer);
                taki.Attack(triggerer);
            }
        }

        if (triggerer.GetPartyMembers().Any(o => o.HasFollowerByName(8054)))
        {
            var burne = Utilities.find_npc_near(triggerer, 8054);
            if ((burne != null))
            {
                triggerer.RemoveFollower(burne);
                burne.FloatLine(12021, triggerer);
                burne.Attack(triggerer);
            }
        }

        if (triggerer.GetPartyMembers().Any(o => o.HasFollowerByName(8060)))
        {
            var morgan = Utilities.find_npc_near(triggerer, 8060);
            if ((morgan != null))
            {
                triggerer.RemoveFollower(morgan);
                morgan.FloatLine(12021, triggerer);
                morgan.Attack(triggerer);
            }
        }

        if (triggerer.GetPartyMembers().Any(o => o.HasFollowerByName(8069)))
        {
            var pishella = Utilities.find_npc_near(triggerer, 8069);
            if ((pishella != null))
            {
                triggerer.RemoveFollower(pishella);
                pishella.FloatLine(12021, triggerer);
                pishella.Attack(triggerer);
            }
        }

        if (triggerer.GetPartyMembers().Any(o => o.HasFollowerByName(8071)))
        {
            var rufus = Utilities.find_npc_near(triggerer, 8071);
            if ((rufus != null))
            {
                triggerer.RemoveFollower(rufus);
                rufus.FloatLine(12021, triggerer);
                rufus.Attack(triggerer);
            }
        }

        if (triggerer.GetPartyMembers().Any(o => o.HasFollowerByName(8714)))
        {
            var holly = Utilities.find_npc_near(triggerer, 8714);
            if ((holly != null))
            {
                triggerer.RemoveFollower(holly);
                holly.FloatLine(1000, triggerer);
                holly.Attack(triggerer);
            }
        }

        return(RunDefault);
    }