public override bool OnHeartbeat(GameObject attachee, GameObject triggerer)
    {
        if ((GetGlobalVar(958) == 1))
        {
            attachee.ClearObjectFlag(ObjectFlag.OFF);
            if ((!GameSystems.Combat.IsCombatActive()))
            {
                if ((is_better_to_talk(attachee, PartyLeader)))
                {
                    PartyLeader.BeginDialog(attachee, 1000);
                }
            }
        }
        else if ((GetGlobalVar(958) == 4))
        {
            if ((!GameSystems.Combat.IsCombatActive()))
            {
                if ((is_better_to_talk(attachee, PartyLeader)))
                {
                    PartyLeader.BeginDialog(attachee, 4000);
                }
            }
        }

        return(RunDefault);
    }
Example #2
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);
    }
    public override bool OnHeartbeat(GameObject attachee, GameObject triggerer)
    {
        if ((!GameSystems.Combat.IsCombatActive()))
        {
            if ((!attachee.HasMet(PartyLeader)))
            {
                if ((is_cool_to_talk(attachee, PartyLeader)))
                {
                    attachee.TurnTowards(PartyLeader);
                    PartyLeader.BeginDialog(attachee, 1);
                }
            }
            else if ((attachee.HasMet(PartyLeader) && GetGlobalVar(700) == 0))
            {
                if ((is_cool_to_talk(attachee, PartyLeader)))
                {
                    attachee.TurnTowards(PartyLeader);
                    PartyLeader.BeginDialog(attachee, 120);
                    DetachScript();
                }
            }
            else if ((GetGlobalVar(700) == 1))
            {
                if ((is_cool_to_talk(attachee, PartyLeader)))
                {
                    attachee.TurnTowards(PartyLeader);
                    PartyLeader.BeginDialog(attachee, 100);
                }
            }
        }

        return(RunDefault);
    }
Example #4
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);
    }
    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;
    }
Example #6
0
    public override bool OnSpellCast(GameObject attachee, GameObject triggerer, SpellPacketBody spell)
    {
        if ((spell.spellEnum == WellKnownSpells.DispelMagic && attachee.GetMap() == 5014 && !GetGlobalFlag(837)))
        {
            SetGlobalFlag(837, true);
            var loc         = attachee.GetLocation();
            var cur         = attachee.GetStat(Stat.hp_current);
            var max         = attachee.GetStat(Stat.hp_max);
            var newHp       = max - cur;
            var damage_dice = Dice.Parse("1d1");
            damage_dice = damage_dice.WithCount(newHp);
            attachee.Destroy();
            var npc = GameSystems.MapObject.CreateObject(14614, new locXY(490, 483));
            // while (i < total):
            npc.Damage(null, DamageType.Bludgeoning, damage_dice);
            if ((GetGlobalFlag(838)))
            {
                PartyLeader.BeginDialog(npc, 100);
            }
            else
            {
                PartyLeader.BeginDialog(npc, 120);
            }
        }

        if ((attachee.GetMap() == 5014 && !GetGlobalFlag(837)))
        {
            triggerer.FloatMesFileLine("mes/spell.mes", 30000);
            return(SkipDefault);
        }

        return(RunDefault);
    }
Example #7
0
    public static bool look_spugnoir(GameObject attachee, GameObject 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 ((npc.DistanceTo(target) <= 20 && target.type == ObjectType.pc && npc.GetNameId() != 8072))
                        {
                            npc.TurnTowards(target);
                            target.BeginDialog(npc, 1000);
                            return(SkipDefault);
                        }
                    }
                }
            }
        }

        attachee.Attack(triggerer);
        return(RunDefault);
    }
    public bool CheckPrecondition(GameObject npc, GameObject pc, int lineNumber, out string originalScript)
    {
        switch (lineNumber)
        {
        case 2:
        case 3:
            originalScript = "game.global_flags[48] == 1";
            return(GetGlobalFlag(48));

        case 4:
        case 5:
            originalScript = "game.quests[16].state == qs_completed and (game.party_alignment == LAWFUL_GOOD or game.party_alignment == NEUTRAL_GOOD or game.party_alignment == CHAOTIC_GOOD or game.party_alignment == LAWFUL_NEUTRAL or game.party_alignment == TRUE_NEUTRAL or game.party_alignment == CHAOTIC_NEUTRAL)";
            return(GetQuestState(16) == QuestState.Completed && (PartyAlignment == Alignment.LAWFUL_GOOD || PartyAlignment == Alignment.NEUTRAL_GOOD || PartyAlignment == Alignment.CHAOTIC_GOOD || PartyAlignment == Alignment.LAWFUL_NEUTRAL || PartyAlignment == Alignment.NEUTRAL || PartyAlignment == Alignment.CHAOTIC_NEUTRAL));

        case 6:
        case 7:
            originalScript = "game.quests[16].state == qs_completed and (game.party_alignment == CHAOTIC_EVIL or game.party_alignment == NEUTRAL_EVIL or game.party_alignment == LAWFUL_EVIL)";
            return(GetQuestState(16) == QuestState.Completed && (PartyAlignment == Alignment.CHAOTIC_EVIL || PartyAlignment == Alignment.NEUTRAL_EVIL || PartyAlignment == Alignment.LAWFUL_EVIL));

        case 10:
            originalScript = "pc != game.party[0] and game.party[0].distance_to(pc) <= 40 and not critter_is_unconscious(game.party[0]) and anyone(game.party[0].group_list(), \"has_wielded\", 3005)";
            return(pc != PartyLeader && PartyLeader.DistanceTo(pc) <= 40 && !Utilities.critter_is_unconscious(PartyLeader) && PartyLeader.GetPartyMembers().Any(o => o.HasEquippedByName(3005)));

        case 31:
        case 32:
            originalScript = "pc.skill_level_get(npc,skill_bluff) >= 7";
            return(pc.GetSkillLevel(npc, SkillId.bluff) >= 7);

        default:
            originalScript = null;
            return(true);
        }
    }
Example #9
0
    public override bool OnRemoveItem(GameObject attachee, GameObject triggerer)
    {
        if (PartyLeader.GetMap() == 5079 && triggerer.GetNameId() == 1050) // Zuggtmoy level, taking from throne of gems
        {
            var zuggtmoy = Utilities.find_npc_near(triggerer, 8064);
            var loc      = triggerer.GetLocation();
            var rot      = triggerer.Rotation;
            triggerer.Destroy();
            var empty_throne = GameSystems.MapObject.CreateObject(1051, loc);
            empty_throne.Rotation = rot;
            UiSystems.CharSheet.Hide();
            if (((zuggtmoy != null) && (SelectedPartyLeader != null)))
            {
                if ((GetGlobalFlag(181)))
                {
                    SetGlobalFlag(181, false);
                    Zuggtmoy.transform_into_demon_form(zuggtmoy, SelectedPartyLeader, 320);
                }
                else
                {
                    SelectedPartyLeader.BeginDialog(zuggtmoy, 320);
                }
            }

            DetachScript();
            return(RunDefault);
        }
        else
        {
            return(SkipDefault);
        }
    }
    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;
    }
Example #11
0
 public static void talk_talk(GameObject attachee, GameObject triggerer)
 {
     attachee.TurnTowards(PartyLeader);
     PartyLeader.BeginDialog(attachee, 1);
     ScriptDaemon.npc_set(attachee, 2);
     return;
 }
    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;
    }
Example #13
0
    public override bool OnHeartbeat(GameObject attachee, GameObject triggerer)
    {
        if ((!GameSystems.Combat.IsCombatActive()))
        {
            if ((is_better_to_talk(attachee, PartyLeader)))
            {
                if ((GetGlobalVar(969) == 2))
                {
                    attachee.TurnTowards(triggerer);
                    PartyLeader.BeginDialog(attachee, 1);
                    SetGlobalVar(969, 3);
                }
                else if ((GetGlobalVar(969) == 4 && GetGlobalVar(993) == 8))
                {
                    attachee.TurnTowards(triggerer);
                    PartyLeader.BeginDialog(attachee, 10);
                    SetGlobalVar(969, 5);
                }
                else if ((GetGlobalVar(969) == 4 && GetGlobalVar(993) != 8))
                {
                    attachee.TurnTowards(triggerer);
                    PartyLeader.BeginDialog(attachee, 240);
                    SetGlobalVar(969, 5);
                }
            }
        }

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

        foreach (var pc in GameSystems.Party.PartyMembers)
        {
            pc.AddCondition("fallen_paladin");
        }

        if ((attachee.GetMap() == 5170 || attachee.GetMap() == 5135))
        {
            SetGlobalFlag(992, true);
            SetGlobalFlag(935, true);
            PartyLeader.AddReputation(44);
        }
        else if ((attachee.GetMap() == 5156))
        {
            if ((GetGlobalFlag(940)))
            {
                SetGlobalFlag(935, true);
                PartyLeader.AddReputation(44);
            }

            SetGlobalFlag(992, true);
        }

        return(RunDefault);
    }
Example #15
0
        protected void SendPartyMessage(string message, int hue = 0x3B2)
        {
            if (HasBegun)
            {
                foreach (var pm in Region.GetEnumeratedMobiles().OfType <PlayerMobile>())
                {
                    pm.SendMessage(hue, message);
                }
            }
            else
            {
                if (PartyLeader == null)
                {
                    return;
                }

                Party p = Party.Get(PartyLeader);

                if (p != null)
                {
                    p.Members.ForEach(info => info.Mobile.SendMessage(hue, message));
                }
                else
                {
                    PartyLeader.SendMessage(hue, message);
                }
            }
        }
    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);
    }
    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);
    }
    public static bool trap(GameObject attachee, GameObject triggerer)
    {
        AttachParticles("Mon-EarthElem-Unconceal", triggerer);
        AttachParticles("Mon-EarthElem-body120", triggerer);
        AttachParticles("Orb-Summon-Earth Elemental", triggerer);
        AttachParticles("sp-Calm Animals", triggerer);
        AttachParticles("sp-Quench", triggerer);
        Sound(4042, 1);
        foreach (var obj in PartyLeader.GetPartyMembers())
        {
            var damage_dice = Dice.Parse("4d8");
            obj.FloatMesFileLine("mes/float.mes", 3);
            AttachParticles("hit-BLUDGEONING-medium", obj);
            if ((obj.ReflexSaveAndDamage(null, 20, D20SavingThrowReduction.Half, D20SavingThrowFlag.NONE, damage_dice, DamageType.Bludgeoning, D20AttackPower.UNSPECIFIED, D20ActionType.UNSPECIFIED_MOVE)))
            {
                triggerer.FloatMesFileLine("mes/spell.mes", 30001);
            }
            else
            {
                triggerer.FloatMesFileLine("mes/spell.mes", 30002);
            }
        }

        return(RunDefault);
    }
Example #19
0
    public static int grate_strength()
    {
        var strength_array = new List <int>();

        foreach (var obj in PartyLeader.GetPartyMembers())
        {
            strength_array.Add(obj.GetStat(Stat.strength));
        }

        strength_array.Sort();
        strength_array.Reverse();
        if (strength_array[0] >= 24)
        {
            return(2);
        }

        if (strength_array.Count >= 3)
        {
            if (strength_array[0] + strength_array[1] + strength_array[2] >= 60)
            {
                return(1);
            }
        }

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

        foreach (var pc in GameSystems.Party.PartyMembers)
        {
            pc.AddCondition("fallen_paladin");
        }

        SetGlobalVar(334, GetGlobalVar(334) + 1);
        if ((GetGlobalVar(334) >= 2))
        {
            PartyLeader.AddReputation(35);
        }

        if ((GetQuestState(67) == QuestState.Accepted))
        {
            SetGlobalFlag(964, true);
        }

        StartTimer(60000, () => go_away(attachee));
        return(RunDefault);
    }
Example #21
0
    public override bool OnDying(GameObject attachee, GameObject triggerer)
    {
        if (CombatStandardRoutines.should_modify_CR(attachee))
        {
            CombatStandardRoutines.modify_CR(attachee, CombatStandardRoutines.get_av_level());
        }

        SetGlobalFlag(196, true);
        if ((!GetGlobalFlag(232)))
        {
            attachee.FloatLine(12014, triggerer);
            SetGlobalVar(23, GetGlobalVar(23) + 1);
            if (GetGlobalVar(23) >= 2)
            {
                PartyLeader.AddReputation(92);
            }
        }
        else
        {
            SetGlobalVar(29, GetGlobalVar(29) + 1);
            attachee.FloatLine(12014, triggerer);
        }

        return(RunDefault);
    }
Example #22
0
    public override bool OnDying(GameObject attachee, GameObject triggerer)
    {
        if ((attachee.GetLeader() == null))
        {
            if (CombatStandardRoutines.should_modify_CR(attachee))
            {
                CombatStandardRoutines.modify_CR(attachee, CombatStandardRoutines.get_av_level());
            }
        }

        SetGlobalFlag(501, true);
        SetGlobalVar(511, GetGlobalVar(511) + 1);
        if ((GetGlobalVar(511) >= 12 && GetGlobalFlag(501)))
        {
            SetGlobalFlag(511, true);
            if ((GetGlobalFlag(511) && GetGlobalFlag(512) && GetGlobalFlag(513) && GetGlobalFlag(514) && GetGlobalFlag(515) && GetGlobalFlag(516) && GetGlobalFlag(517) && GetGlobalFlag(518) && GetGlobalFlag(519) && GetGlobalFlag(520) && GetGlobalFlag(521) && GetGlobalFlag(522)))
            {
                SetQuestState(97, QuestState.Completed);
                PartyLeader.AddReputation(52);
                SetGlobalVar(501, 7);
            }
        }

        return(RunDefault);
    }
    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;
    }
    public override void OnEndProjectile(SpellPacketBody spell, GameObject projectile, int index_of_target)
    {
        Logger.Info("Magic Missile OnEndProjectile");
        EndProjectileParticles(projectile);
        var target      = spell.Targets[index_of_target];
        var damage_dice = Dice.D4;

        damage_dice = damage_dice.WithModifier(1);
        var target_item_obj = target.Object;

        if ((!((PartyLeader.GetPartyMembers()).Contains(spell.caster))) && target_item_obj.D20Query(D20DispatcherKey.QUE_Critter_Is_Charmed))
        {
            // NPC enemy is trying to cast on a charmed target - this is mostly meant for the Cult of the Siren encounter
            target_item_obj = Utilities.party_closest(spell.caster, exclude_warded: true); // select nearest conscious PC instead, who isn't already charmed
            if (target_item_obj == null)
            {
                target_item_obj = target.Object;
            }
        }

        // always hits
        target_item_obj.AddCondition("sp-Magic Missile", spell.spellId, spell.duration, damage_dice.Roll());
        target.ParticleSystem = AttachParticles("sp-magic missle-hit", target_item_obj);
        // special scripting for NPCs no longer necessary - NPCs will launch multiple projectiles now
        // spell.target_list.remove_target_by_index( index_of_target )
        spell.RemoveProjectile(projectile);
        if (spell.projectiles.Length == 0)
        {
            // loc = target.obj.location
            // target.obj.destroy()
            // mxcr = game.obj_create( 12021, loc )
            // game.global_vars[30] = game.global_vars[30] + 1
            spell.EndSpell(true);
        }
    }
    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;
    }
Example #26
0
        protected void SendPartyMessage(int cliloc, int hue = 0x3B2)
        {
            if (HasBegun)
            {
                foreach (PlayerMobile pm in Region.GetEnumeratedMobiles().OfType <PlayerMobile>())
                {
                    pm.SendLocalizedMessage(cliloc, null, hue);
                }
            }
            else
            {
                if (PartyLeader == null)
                {
                    return;
                }

                Party p = Party.Get(PartyLeader);

                if (p != null)
                {
                    p.Members.ForEach(info => info.Mobile.SendLocalizedMessage(cliloc, null, hue));
                }
                else
                {
                    PartyLeader.SendLocalizedMessage(cliloc, null, hue);
                }
            }
        }
Example #27
0
    public override bool OnDying(GameObject attachee, GameObject triggerer)
    {
        if (CombatStandardRoutines.should_modify_CR(attachee))
        {
            CombatStandardRoutines.modify_CR(attachee, CombatStandardRoutines.get_av_level());
        }

        SetGlobalFlag(336, true);
        SetGlobalFlag(284, true);
        if ((attachee.GetLeader() == null && attachee.FindItemByName(5009) == null && GetGlobalFlag(850)))
        {
            SetGlobalFlag(850, false);
            Utilities.create_item_in_inventory(5009, attachee);
        }

        if ((!GetGlobalFlag(233)))
        {
            SetGlobalVar(23, GetGlobalVar(23) + 1);
            if ((GetGlobalVar(23) >= 2))
            {
                PartyLeader.AddReputation(92);
            }
        }
        else
        {
            SetGlobalVar(29, GetGlobalVar(29) + 1);
        }

        return(RunDefault);
    }
Example #28
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);
    }
Example #29
0
    public override bool OnUse(GameObject door, GameObject triggerer)
    {
        if ((door.GetNameId() == 1622))
        {
            if ((!GetGlobalFlag(532)))
            {
                SetGlobalFlag(534, true);
                return(SkipDefault);
            }
            // if doors to tunnels are locked, disable door portal, flag for attempt and fine
            else if ((GetGlobalFlag(532)))
            {
                if ((GetGlobalVar(548) <= 2))
                {
                    SetGlobalVar(548, GetGlobalVar(548) + 1);
                    if ((GetGlobalVar(548) == 3))
                    {
                        PartyLeader.AddReputation(68);
                        SetGlobalVar(548, 4);
                    }
                }

                return(RunDefault);
            }
        }

        return(RunDefault);
    }
Example #30
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);
    }