public static void heavily_damage(GameObject npc)
    {
        // note: this script kills an NPC
        // since the san_dying is triggered, it makes the game think you killed him
        // so to avoid problems, reduce global_vars[23] (which counts the # of Hommeletans killed) beforehand
        bool flag;

        if ((GetGlobalVar(23) == 0))
        {
            flag = false;
        }
        else
        {
            flag = true;
            SetGlobalVar(23, GetGlobalVar(23) - 1);
        }

        npc.Damage(null, DamageType.Poison, Dice.Parse("30d1"));
        npc.Damage(null, DamageType.Subdual, Dice.Parse("15d1"));
        if ((!flag && GetGlobalVar(23) > 0))
        {
            SetGlobalVar(23, GetGlobalVar(23) - 1);
        }

        if ((GetGlobalVar(23) < 2 && PartyLeader.HasReputation(92)))
        {
            foreach (var pc in GameSystems.Party.PartyMembers)
            {
                pc.RemoveReputation(92);
            }
        }

        return;
    }
예제 #2
0
    public static void traders_runoff(GameObject attachee)
    {
        AttachParticles("orb-summon-fire-elemental", PartyLeader);
        var gremag = Utilities.find_npc_near(attachee, 8049);
        var rannos = Utilities.find_npc_near(attachee, 8048);

        if (gremag != null)
        {
            gremag.RunOff();
        }

        if (rannos != null)
        {
            rannos.RunOff(gremag.GetLocation().OffsetTiles(-3, 0));
        }

        if (!PartyLeader.HasReputation(23))
        {
            PartyLeader.AddReputation(23);
        }

        if (SelectedPartyLeader.GetMap() == 5051)
        {
            GameSystems.RandomEncounter.RemoveQueuedEncounter(3159);
        }

        attachee.Destroy();
        return;
    }
    public static void check_evidence_rep_rak(GameObject attachee, GameObject triggerer)
    {
        if ((PartyLeader.HasReputation(74)))
        {
            PartyLeader.AddReputation(77);
            PartyLeader.RemoveReputation(74);
        }
        else if ((PartyLeader.HasReputation(71)))
        {
            PartyLeader.AddReputation(74);
            PartyLeader.RemoveReputation(71);
        }
        else if ((!PartyLeader.HasReputation(71)))
        {
            if ((!PartyLeader.HasReputation(74)))
            {
                if ((!PartyLeader.HasReputation(77)))
                {
                    PartyLeader.AddReputation(71);
                }
            }
        }

        return;
    }
예제 #4
0
    public override bool OnFirstHeartbeat(GameObject attachee, GameObject triggerer)
    {
        if ((attachee.GetMap() == 5156 && GetGlobalVar(704) == 3 && Utilities.is_daytime() && GetQuestState(76) != QuestState.Accepted))
        {
            // turns on warehouse Wilfrick escort
            attachee.ClearObjectFlag(ObjectFlag.OFF);
        }
        else if ((attachee.GetMap() == 5093 && GetGlobalVar(960) == 3))
        {
            // turns on Welkwood Thaddeus escort
            attachee.ClearObjectFlag(ObjectFlag.OFF);
        }
        else if ((attachee.GetMap() == 5171 && GetGlobalVar(944) == 4 && GetGlobalFlag(861)))
        {
            // turns on Watch Post main floor replacements
            attachee.ClearObjectFlag(ObjectFlag.OFF);
        }
        else if (((PartyLeader.HasReputation(35) || PartyLeader.HasReputation(42)) && (attachee.GetMap() == 5121)))
        {
            // turns on Verbobonc Exterior backup patrol
            attachee.ClearObjectFlag(ObjectFlag.OFF);
        }
        else if (((!PartyLeader.HasReputation(35)) && (attachee.GetMap() == 5121)))
        {
            // turns off Verbobonc Exterior backup patrol
            attachee.SetObjectFlag(ObjectFlag.OFF);
        }

        return(RunDefault);
    }
예제 #5
0
    public override bool OnHeartbeat(GameObject attachee, GameObject triggerer)
    {
        if (((attachee.GetMap() != 5171) && (PartyLeader.HasReputation(34) || PartyLeader.HasReputation(35) || PartyLeader.HasReputation(42) || PartyLeader.HasReputation(44) || PartyLeader.HasReputation(45) || PartyLeader.HasReputation(43) || PartyLeader.HasReputation(46) || (GetGlobalVar(993) == 5 && !GetGlobalFlag(870)))))
        {
            if (((GetGlobalVar(969) == 0) && (!GetGlobalFlag(955))))
            {
                if ((!GameSystems.Combat.IsCombatActive()))
                {
                    foreach (var obj in ObjList.ListVicinity(attachee.GetLocation(), ObjectListFilter.OLC_PC))
                    {
                        if ((is_better_to_talk(attachee, obj)))
                        {
                            attachee.TurnTowards(obj);
                            obj.BeginDialog(attachee, 30);
                        }
                    }
                }
            }
        }
        else if (((attachee.GetMap() == 5149) && (GetGlobalVar(944) == 1 || GetGlobalVar(944) == 2) && (!GetGlobalFlag(861))))
        {
            attachee.RunOff();
            SetGlobalFlag(861, true);
        }

        // game.new_sid = 0
        return(RunDefault);
    }
예제 #6
0
    public override bool OnDialog(GameObject attachee, GameObject triggerer)
    {
        attachee.TurnTowards(triggerer);
        if ((attachee.GetLeader() != null))
        {
            triggerer.BeginDialog(attachee, 250); // pishella in party
        }
        else if ((attachee.GetMap() == 5014))
        {
            triggerer.BeginDialog(attachee, 330); // WotGS Hommlet under attack
        }
        else if ((GetGlobalVar(911) == 32 && attachee.GetMap() != 5016 && attachee.GetMap() != 5019))
        {
            triggerer.BeginDialog(attachee, 350); // have attacked 3 or more farm animals with pishella in party and not in castle main hall or parapet interior
        }
        else if ((SelectedPartyLeader.HasReputation(32) || SelectedPartyLeader.HasReputation(30) || SelectedPartyLeader.HasReputation(29)))
        {
            attachee.FloatLine(12014, triggerer); // have lawbreaker or convict or banished from hommlet reps
        }
        else if ((GetGlobalFlag(694)))
        {
            triggerer.BeginDialog(attachee, 400); // declined to share information on who is altering construction orders
        }
        else if ((PartyLeader.HasReputation(27)))
        {
            triggerer.BeginDialog(attachee, 180); // have rabble-rouser reputation
        }
        else
        {
            triggerer.BeginDialog(attachee, 1); // none of the above
        }

        return(SkipDefault);
    }
    public static void check_evidence_rep_pan(GameObject attachee, GameObject triggerer)
    {
        if ((PartyLeader.HasReputation(73)))
        {
            PartyLeader.AddReputation(76);
            PartyLeader.RemoveReputation(73);
        }
        else if ((PartyLeader.HasReputation(70)))
        {
            PartyLeader.AddReputation(73);
            PartyLeader.RemoveReputation(70);
        }
        else if ((!PartyLeader.HasReputation(70)))
        {
            if ((!PartyLeader.HasReputation(73)))
            {
                if ((!PartyLeader.HasReputation(76)))
                {
                    PartyLeader.AddReputation(70);
                }
            }
        }

        return;
    }
    public static void check_evidence_rep_bor(GameObject attachee, GameObject triggerer)
    {
        if ((PartyLeader.HasReputation(72)))
        {
            PartyLeader.AddReputation(75);
            PartyLeader.RemoveReputation(72);
        }
        else if ((PartyLeader.HasReputation(69)))
        {
            PartyLeader.AddReputation(72);
            PartyLeader.RemoveReputation(69);
        }
        else if ((!PartyLeader.HasReputation(69)))
        {
            if ((!PartyLeader.HasReputation(72)))
            {
                if ((!PartyLeader.HasReputation(75)))
                {
                    PartyLeader.AddReputation(69);
                }
            }
        }

        return;
    }
예제 #9
0
    public override bool OnDying(GameObject attachee, GameObject triggerer)
    {
        if (CombatStandardRoutines.should_modify_CR(attachee))
        {
            CombatStandardRoutines.modify_CR(attachee, CombatStandardRoutines.get_av_level());
        }

        if ((attachee.GetMap() == 5010))
        {
            rngfighttime_set();
            SetGlobalFlag(426, true);
        }

        SetGlobalFlag(814, true);
        if ((GetGlobalFlag(815)))
        {
            foreach (var pc in GameSystems.Party.PartyMembers)
            {
                if ((pc.HasReputation(23)))
                {
                    pc.RemoveReputation(23);
                }
            }
        }

        if ((!PartyLeader.HasReputation(9)))
        {
            PartyLeader.AddReputation(9);
        }

        return(RunDefault);
    }
예제 #10
0
    public override bool OnDialog(GameObject attachee, GameObject triggerer)
    {
        if ((GetGlobalVar(501) == 4 || GetGlobalVar(501) == 5 || GetGlobalVar(501) == 6))
        {
            attachee.FloatLine(23000, triggerer);
        }
        else if ((GetGlobalFlag(835) && !GetGlobalFlag(37) && !GetGlobalFlag(842) && !GetGlobalFlag(839)))
        {
            triggerer.BeginDialog(attachee, 300);
        }
        else if ((PartyLeader.HasReputation(27)))
        {
            triggerer.BeginDialog(attachee, 120);
        }
        else if ((attachee.HasMet(triggerer)))
        {
            triggerer.BeginDialog(attachee, 130);
        }
        else
        {
            triggerer.BeginDialog(attachee, 1);
        }

        return(SkipDefault);
    }
예제 #11
0
    public override bool OnDialog(GameObject attachee, GameObject triggerer)
    {
        if ((attachee.GetLeader() != null))
        {
            triggerer.BeginDialog(attachee, 210); // rufus in party
        }
        else if ((GetGlobalVar(912) == 32 && attachee.GetMap() != 5016 && attachee.GetMap() != 5018))
        {
            triggerer.BeginDialog(attachee, 240); // have attacked 3 or more farm animals with rufus in party and not in castle main hall or upper hall
        }
        else if ((GetGlobalFlag(835) && !GetGlobalFlag(37) && GetGlobalFlag(842) && !GetGlobalFlag(839)))
        {
            triggerer.BeginDialog(attachee, 320); // handled tower fight diplomatically and lareth is alive and have heard about prisoner lareth and have not liberated lareth
        }
        else if ((PartyLeader.HasReputation(27)))
        {
            triggerer.BeginDialog(attachee, 11002); // have rabble-rouser reputation - rufus won't talk to you
        }
        else
        {
            triggerer.BeginDialog(attachee, 1); // none of the above
        }

        return(SkipDefault);
    }
예제 #12
0
    public override bool OnWillKos(GameObject attachee, GameObject triggerer)
    {
        if ((!PartyLeader.HasReputation(92)))
        {
            return(SkipDefault);
        }

        return(RunDefault);
    }
    public override bool OnFirstHeartbeat(GameObject attachee, GameObject triggerer)
    {
        if ((GetGlobalVar(949) == 2 || PartyLeader.HasReputation(47)))
        {
            attachee.SetObjectFlag(ObjectFlag.OFF);
        }

        return(RunDefault);
    }
예제 #14
0
    public override bool OnFirstHeartbeat(GameObject attachee, GameObject triggerer)
    {
        if ((attachee.GetMap() == 5031))
        {
            if ((GetQuestState(9) == QuestState.Accepted))
            {
                if ((!Utilities.is_daytime()))
                {
                    attachee.SetObjectFlag(ObjectFlag.OFF);
                }
                else
                {
                    attachee.ClearObjectFlag(ObjectFlag.OFF);
                }
            }
            else if ((GetGlobalVar(4) == 3))
            {
                SetGlobalVar(4, 4);
                attachee.SetObjectFlag(ObjectFlag.OFF);
                SetGlobalFlag(99, true);
                SetGlobalVar(24, GetGlobalVar(24) + 1);
                if ((!PartyLeader.HasReputation(5)))
                {
                    PartyLeader.AddReputation(5);
                }

                if (((GetGlobalVar(24) >= 3) && (!PartyLeader.HasReputation(6))))
                {
                    PartyLeader.AddReputation(6);
                }
            }
            else if ((GetGlobalVar(4) == 5))
            {
                attachee.ClearObjectFlag(ObjectFlag.OFF);
            }
        }
        else if ((attachee.GetMap() == 5001))
        {
            if ((GetQuestState(9) == QuestState.Accepted))
            {
                if ((!Utilities.is_daytime()))
                {
                    attachee.ClearObjectFlag(ObjectFlag.OFF);
                }
                else
                {
                    attachee.SetObjectFlag(ObjectFlag.OFF);
                }
            }
            else
            {
                attachee.SetObjectFlag(ObjectFlag.OFF);
            }
        }

        return(RunDefault);
    }
예제 #15
0
    public override bool OnDying(GameObject attachee, GameObject triggerer)
    {
        if (!PartyLeader.HasReputation(9))
        {
            PartyLeader.AddReputation(9);
        }

        return(RunDefault);
    }
예제 #16
0
    public override bool OnHeartbeat(GameObject attachee, GameObject triggerer)
    {
        if ((GetGlobalFlag(525) && !GetGlobalFlag(526)))
        {
            if ((GetGlobalFlag(527)))
            {
                foreach (var obj in ObjList.ListVicinity(attachee.GetLocation(), ObjectListFilter.OLC_PC))
                {
                    if ((is_better_to_talk(attachee, obj)))
                    {
                        StartTimer(1500, () => wakefield_talk(attachee, triggerer));
                        SetGlobalFlag(526, true);
                    }
                }
            }
            else
            {
                foreach (var obj in ObjList.ListVicinity(attachee.GetLocation(), ObjectListFilter.OLC_PC))
                {
                    if ((is_better_to_talk(attachee, obj)))
                    {
                        StartTimer(1500, () => suspicious_talk(attachee, triggerer));
                        SetGlobalFlag(526, true);
                    }
                }
            }
        }
        else if ((GetGlobalVar(501) == 3 && Utilities.find_npc_near(attachee, 14496) != null && !GetGlobalFlag(503)))
        {
            foreach (var obj in ObjList.ListVicinity(attachee.GetLocation(), ObjectListFilter.OLC_PC))
            {
                if ((is_better_to_talk(attachee, obj)))
                {
                    StartTimer(1500, () => talkie_talkie(attachee, triggerer));
                    SetGlobalFlag(503, true);
                }
            }
        }
        else if ((!PartyLeader.HasReputation(52) && GetGlobalVar(505) == 2 && attachee.GetLeader() == null))
        {
            foreach (var obj in ObjList.ListVicinity(attachee.GetLocation(), ObjectListFilter.OLC_PC))
            {
                if ((is_better_to_talk(attachee, obj)))
                {
                    StartTimer(1500, () => bad_news(attachee, triggerer));
                    SetGlobalVar(505, 3);
                }
            }
        }

        return(RunDefault);
    }
예제 #17
0
    public override bool OnFirstHeartbeat(GameObject attachee, GameObject triggerer)
    {
        if (((PartyLeader.HasReputation(35) || PartyLeader.HasReputation(42)) && (attachee.GetMap() == 5121))) // turns on Verbobonc Exterior backup patrol
        {
            attachee.ClearObjectFlag(ObjectFlag.OFF);
        }
        else if (((!PartyLeader.HasReputation(35)) && (attachee.GetMap() == 5121))) // turns off Verbobonc Exterior backup patrol
        {
            attachee.SetObjectFlag(ObjectFlag.OFF);
        }

        return(RunDefault);
    }
예제 #18
0
    public override bool OnWillKos(GameObject attachee, GameObject triggerer)
    {
        if ((PartyLeader.HasReputation(34)) || (PartyLeader.HasReputation(35)))
        {
            return(RunDefault);
        }
        else if ((!GetGlobalFlag(992)) || (!GetGlobalFlag(975)))
        {
            return(SkipDefault);
        }

        return(RunDefault);
    }
예제 #19
0
    public override bool OnDying(GameObject attachee, GameObject triggerer)
    {
        if ((GetQuestState(9) >= QuestState.Accepted))
        {
            SetGlobalVar(4, 1);
        }

        if (!PartyLeader.HasReputation(9))
        {
            PartyLeader.AddReputation(9);
        }

        return(RunDefault);
    }
예제 #20
0
    public override bool OnDying(GameObject attachee, GameObject triggerer)
    {
        if (CombatStandardRoutines.should_modify_CR(attachee))
        {
            CombatStandardRoutines.modify_CR(attachee, CombatStandardRoutines.get_av_level());
        }

        if ((!PartyLeader.HasReputation(9)))
        {
            PartyLeader.AddReputation(9);
        }

        return(RunDefault);
    }
예제 #21
0
    public static bool increment_rep(GameObject attachee, GameObject triggerer)
    {
        if ((PartyLeader.HasReputation(81)))
        {
            PartyLeader.AddReputation(82);
            PartyLeader.RemoveReputation(81);
        }
        else if ((PartyLeader.HasReputation(82)))
        {
            PartyLeader.AddReputation(83);
            PartyLeader.RemoveReputation(82);
        }
        else if ((PartyLeader.HasReputation(83)))
        {
            PartyLeader.AddReputation(84);
            PartyLeader.RemoveReputation(83);
        }
        else if ((PartyLeader.HasReputation(84)))
        {
            PartyLeader.AddReputation(85);
            PartyLeader.RemoveReputation(84);
        }
        else if ((PartyLeader.HasReputation(85)))
        {
            PartyLeader.AddReputation(86);
            PartyLeader.RemoveReputation(85);
        }
        else if ((PartyLeader.HasReputation(86)))
        {
            PartyLeader.AddReputation(87);
            PartyLeader.RemoveReputation(86);
        }
        else if ((PartyLeader.HasReputation(87)))
        {
            PartyLeader.AddReputation(88);
            PartyLeader.RemoveReputation(87);
        }
        else if ((PartyLeader.HasReputation(88)))
        {
            PartyLeader.AddReputation(89);
            PartyLeader.RemoveReputation(88);
        }
        else
        {
            PartyLeader.AddReputation(81);
        }

        return(RunDefault);
    }
예제 #22
0
    public override bool OnDialog(GameObject attachee, GameObject triggerer)
    {
        if (((GetGlobalFlag(202)) && (GetQuestState(42) != QuestState.Completed)))
        {
            triggerer.BeginDialog(attachee, 360);
        }
        else if ((PartyLeader.HasReputation(23) && GetGlobalFlag(94) && !GetGlobalFlag(851) && attachee.HasMet(triggerer)))
        {
            triggerer.BeginDialog(attachee, 400);
        }
        else
        {
            triggerer.BeginDialog(attachee, 1);
        }

        return(SkipDefault);
    }
예제 #23
0
    public override bool OnDialog(GameObject attachee, GameObject triggerer)
    {
        if ((attachee.GetLeader() != null))
        {
            attachee.FloatLine(10000, triggerer);
        }
        else if ((PartyLeader.HasReputation(61)))
        {
            triggerer.BeginDialog(attachee, 1);
        }
        else
        {
            triggerer.BeginDialog(attachee, 100);
        }

        return(SkipDefault);
    }
예제 #24
0
    public override bool OnFirstHeartbeat(GameObject attachee, GameObject triggerer)
    {
        if ((attachee.GetMap() == 5001) && (GetGlobalVar(4) <= 1))
        {
            if ((GetQuestState(9) == QuestState.Accepted))
            {
                attachee.ClearObjectFlag(ObjectFlag.OFF);
            }
            else
            {
                attachee.SetObjectFlag(ObjectFlag.OFF);
            }
        }
        else if ((GetGlobalVar(4) == 5))
        {
            attachee.ClearObjectFlag(ObjectFlag.OFF);
        }
        else if ((GetGlobalVar(4) == 3))
        {
            SetGlobalVar(4, 4);
            attachee.SetStandpoint(StandPointType.Night, 230);
            attachee.SetStandpoint(StandPointType.Day, 230);
            attachee.SetObjectFlag(ObjectFlag.OFF);
            SetGlobalFlag(204, true);
            SetGlobalVar(24, GetGlobalVar(24) + 1);
            if ((!PartyLeader.HasReputation(5)))
            {
                PartyLeader.AddReputation(5);
            }

            if (((GetGlobalVar(24) >= 3) && (!PartyLeader.HasReputation(6))))
            {
                PartyLeader.AddReputation(6);
            }
        }
        else if ((GetQuestState(9) >= QuestState.Completed))
        {
            attachee.SetObjectFlag(ObjectFlag.OFF);
        }
        else
        {
            attachee.ClearObjectFlag(ObjectFlag.OFF);
        }

        return(RunDefault);
    }
예제 #25
0
    public override bool OnResurrect(GameObject attachee, GameObject triggerer)
    {
        SetGlobalFlag(814, false);
        if ((PartyLeader.HasReputation(9)))
        {
            foreach (var pc in GameSystems.Party.PartyMembers)
            {
                if ((!pc.HasReputation(23)))
                {
                    pc.AddReputation(23);
                }
            }

            PartyLeader.RemoveReputation(9);
        }

        return(RunDefault);
    }
예제 #26
0
    public override bool OnDying(GameObject attachee, GameObject triggerer)
    {
        if (CombatStandardRoutines.should_modify_CR(attachee))
        {
            CombatStandardRoutines.modify_CR(attachee, CombatStandardRoutines.get_av_level());
        }

        if ((attachee.GetNameId() == 8893))
        {
            AttachParticles("Orb-Summon-Glabrezu", attachee);
            SetGlobalFlag(562, true);
            if ((GetGlobalFlag(560) && GetGlobalFlag(561)))
            {
                PartyLeader.AddReputation(62);
            }

            if ((!GetGlobalFlag(564)))
            {
                PartyLeader.AddReputation(90);
            }

            attachee.SetObjectFlag(ObjectFlag.OFF);
            spawn_phylactery();
        }
        else if ((attachee.GetNameId() == 14949))
        {
            AttachParticles("hit-HOLY-medium", attachee);
            SetGlobalFlag(564, true);
            Sound(4184, 1);
            if ((GetGlobalFlag(562)))
            {
                if ((PartyLeader.HasReputation(90)))
                {
                    PartyLeader.RemoveReputation(90);
                }
            }

            attachee.SetObjectFlag(ObjectFlag.OFF);
        }

        return(RunDefault);
    }
예제 #27
0
    public static void rep_routine(GameObject attachee, GameObject triggerer)
    {
        if ((PartyLeader.HasReputation(75)))
        {
            PartyLeader.AddReputation(78);
            PartyLeader.RemoveReputation(75);
        }
        else if ((PartyLeader.HasReputation(76)))
        {
            PartyLeader.AddReputation(78);
            PartyLeader.RemoveReputation(76);
        }
        else if ((PartyLeader.HasReputation(77)))
        {
            PartyLeader.AddReputation(78);
            PartyLeader.RemoveReputation(77);
        }

        return;
    }
예제 #28
0
    public override bool OnHeartbeat(GameObject attachee, GameObject triggerer)
    {
        if (((attachee.GetMap() == 5170 || attachee.GetMap() == 5135) && GetGlobalVar(946) == 1))
        {
            if ((!GameSystems.Combat.IsCombatActive()))
            {
                foreach (var obj in ObjList.ListVicinity(attachee.GetLocation(), ObjectListFilter.OLC_PC))
                {
                    if ((is_groovier_to_talk(attachee, obj)))
                    {
                        StartTimer(2000, () => start_talking(attachee, triggerer));
                        DetachScript();
                    }
                }
            }
        }
        else
        {
            if ((PartyLeader.HasReputation(34) || PartyLeader.HasReputation(35) || PartyLeader.HasReputation(42) || PartyLeader.HasReputation(44) || PartyLeader.HasReputation(35) || PartyLeader.HasReputation(43) || PartyLeader.HasReputation(46) || (GetGlobalVar(993) == 5 && !GetGlobalFlag(870))))
            {
                if (((GetGlobalVar(969) == 0) && (!GetGlobalFlag(955))))
                {
                    if ((!GameSystems.Combat.IsCombatActive()))
                    {
                        foreach (var obj in ObjList.ListVicinity(attachee.GetLocation(), ObjectListFilter.OLC_PC))
                        {
                            if ((is_better_to_talk(attachee, obj)))
                            {
                                attachee.TurnTowards(obj);
                                obj.BeginDialog(attachee, 230);
                                SetGlobalVar(969, 1);
                            }
                        }
                    }
                }
            }
        }

        return(RunDefault);
    }
예제 #29
0
    public override bool OnHeartbeat(GameObject attachee, GameObject triggerer)
    {
        // get arrested for various reps
        if (((attachee.GetMap() != 5156) && (PartyLeader.HasReputation(34) || PartyLeader.HasReputation(35) || PartyLeader.HasReputation(42) || PartyLeader.HasReputation(44) || PartyLeader.HasReputation(45) || PartyLeader.HasReputation(43) || PartyLeader.HasReputation(46) || (GetGlobalVar(993) == 5 && !GetGlobalFlag(870)))))
        {
            if (((GetGlobalVar(969) == 0) && (!GetGlobalFlag(955))))
            {
                if ((!GameSystems.Combat.IsCombatActive()))
                {
                    foreach (var obj in ObjList.ListVicinity(attachee.GetLocation(), ObjectListFilter.OLC_PC))
                    {
                        if ((is_better_to_talk(attachee, obj)))
                        {
                            StartTimer(2000, () => get_arrested(attachee, triggerer));
                        }
                    }
                }
            }
        }
        // viscount guard talks about arrow to the knee
        else if ((attachee.GetNameId() == 8800))
        {
            if ((GetGlobalVar(829) == 0))
            {
                if ((!GameSystems.Combat.IsCombatActive()))
                {
                    foreach (var obj in ObjList.ListVicinity(attachee.GetLocation(), ObjectListFilter.OLC_PC))
                    {
                        if ((is_peachy_to_talk(attachee, obj)))
                        {
                            StartTimer(2000, () => talk_arrow_knee(attachee, triggerer));
                            SetGlobalVar(829, 1);
                        }
                    }
                }
            }
        }

        return(RunDefault);
    }
예제 #30
0
    public override bool OnHeartbeat(GameObject attachee, GameObject triggerer)
    {
        if ((PartyLeader.HasReputation(34) || PartyLeader.HasReputation(35) || PartyLeader.HasReputation(42) || PartyLeader.HasReputation(44) || PartyLeader.HasReputation(35) || PartyLeader.HasReputation(43) || PartyLeader.HasReputation(46) || (GetGlobalVar(993) == 5 && !GetGlobalFlag(870))))
        {
            if (((GetGlobalVar(969) == 0) && (!GetGlobalFlag(955))))
            {
                if ((!GameSystems.Combat.IsCombatActive()))
                {
                    foreach (var obj in ObjList.ListVicinity(attachee.GetLocation(), ObjectListFilter.OLC_PC))
                    {
                        if ((is_better_to_talk(attachee, obj)))
                        {
                            attachee.TurnTowards(obj);
                            obj.BeginDialog(attachee, 320);
                            SetGlobalVar(969, 1);
                        }
                    }
                }
            }
        }
        else if ((!GameSystems.Combat.IsCombatActive()))
        {
            if ((GetGlobalVar(914) >= 3))
            {
                if ((attachee != null))
                {
                    var leader = attachee.GetLeader();
                    if ((leader != null))
                    {
                        leader.RemoveFollower(attachee);
                        attachee.FloatLine(22000, triggerer);
                    }
                }
            }
        }

        return(RunDefault);
    }