public bool CheckPrecondition(GameObject npc, GameObject pc, int lineNumber, out string originalScript)
    {
        switch (lineNumber)
        {
        case 5:
        case 6:
        case 45:
        case 46:
            originalScript = "game.party_alignment & ALIGNMENT_EVIL != 0 and pc.stat_level_get(stat_alignment) & ALIGNMENT_EVIL != 0";
            return(PartyAlignment.IsEvil() && pc.GetAlignment().IsEvil());

        case 24:
        case 25:
            originalScript = "game.global_flags[425] == 1";
            return(GetGlobalFlag(425));

        case 41:
        case 42:
            originalScript = "pc.skill_level_get(npc, skill_sense_motive) >= 10";
            return(pc.GetSkillLevel(npc, SkillId.sense_motive) >= 10);

        case 51:
            originalScript = "game.global_flags[7] == 0";
            return(!GetGlobalFlag(7));

        case 52:
            originalScript = "game.global_flags[7] == 1";
            return(GetGlobalFlag(7));

        default:
            originalScript = null;
            return(true);
        }
    }
Esempio n. 2
0
    public override bool OnHeartbeat(GameObject attachee, GameObject triggerer)
    {
        if ((GetGlobalFlag(875) && !GetGlobalFlag(876) && GetQuestState(99) != QuestState.Completed && !triggerer.GetPartyMembers().Any(o => o.HasItemByName(12900))))
        {
            SetGlobalFlag(876, true);
            StartTimer(140000000, () => amii_dies());
        }

        SetGlobalVar(722, GetGlobalVar(722) + 1);
        if ((GameSystems.Combat.IsCombatActive()) || (PartyAlignment.IsGood()))
        {
            return(RunDefault);
        }

        if ((GetGlobalVar(722) == 1))
        {
            attachee.CastSpell(WellKnownSpells.Stoneskin, attachee);
            attachee.PendingSpellsToMemorized();
        }

        // if (game.global_vars[722] >= 5 and (not attachee.has_wielded(4047) or not attachee.has_wielded(4111))):
        if ((GetGlobalVar(722) >= 5 && !attachee.HasEquippedByName(4111))) // 4111 (Rod of the Python) is a two-handed quarterstaff since v6.1
        {
            attachee.WieldBestInAllSlots();
        }

        // attachee.item_wield_best_all()
        // if (not attachee.has_spell_effects()):
        // game.global_vars[722] = 0
        return(RunDefault);
    }
Esempio n. 3
0
    public override bool OnHeartbeat(GameObject attachee, GameObject triggerer)
    {
        if ((GetGlobalVar(712) == 0 && attachee.GetLeader() == null && !GameSystems.Combat.IsCombatActive()) && !PartyAlignment.IsGood())
        {
            attachee.CastSpell(WellKnownSpells.MageArmor, attachee);
            attachee.PendingSpellsToMemorized();
            SetGlobalVar(712, 1);
        }

        if ((!GameSystems.Combat.IsCombatActive()))
        {
            if ((GetGlobalVar(913) >= 3))
            {
                if ((attachee != null))
                {
                    var leader = attachee.GetLeader();
                    if ((leader != null))
                    {
                        leader.RemoveFollower(attachee);
                        attachee.FloatLine(22000, triggerer);
                    }
                }
            }
        }

        return(RunDefault);
    }
Esempio n. 4
0
    public override bool OnHeartbeat(GameObject attachee, GameObject triggerer)
    {
        if ((GetGlobalVar(724) == 0 && attachee.GetLeader() == null && !GameSystems.Combat.IsCombatActive()) && !PartyAlignment.IsGood())
        {
            attachee.CastSpell(WellKnownSpells.DeathWard, attachee);
            attachee.PendingSpellsToMemorized();
        }

        if ((GetGlobalVar(724) == 4 && attachee.GetLeader() == null && !GameSystems.Combat.IsCombatActive()) && !PartyAlignment.IsGood())
        {
            attachee.CastSpell(WellKnownSpells.ShieldOfFaith, attachee);
            attachee.PendingSpellsToMemorized();
        }

        SetGlobalVar(724, GetGlobalVar(724) + 1);
        return(RunDefault);
    }
    public bool CheckPrecondition(GameObject npc, GameObject pc, int lineNumber, out string originalScript)
    {
        switch (lineNumber)
        {
        case 2:
        case 3:
            originalScript = "not npc.has_met(pc)";
            return(!npc.HasMet(pc));

        case 4:
        case 5:
        case 18:
        case 19:
            originalScript = "npc.has_met(pc)";
            return(npc.HasMet(pc));

        case 6:
        case 7:
            originalScript = "npc.has_met(pc) and game.party_alignment == TRUE_NEUTRAL and game.global_flags[18] == 0";
            return(npc.HasMet(pc) && PartyAlignment == Alignment.NEUTRAL && !GetGlobalFlag(18));

        case 8:
        case 9:
            originalScript = "game.story_state >= 2 and game.party_alignment == TRUE_NEUTRAL and game.global_flags[19] == 0 and game.global_vars[562] == 4";
            return(StoryState >= 2 && PartyAlignment == Alignment.NEUTRAL && !GetGlobalFlag(19) && GetGlobalVar(562) == 4);

        case 10:
        case 11:
        case 89:
        case 90:
            originalScript = "game.global_flags[17] == 1 and game.quests[5].state != qs_completed";
            return(GetGlobalFlag(17) && GetQuestState(5) != QuestState.Completed);

        case 12:
        case 13:
            originalScript = "game.quests[99].state == qs_botched";
            return(GetQuestState(99) == QuestState.Botched);

        case 14:
        case 15:
            originalScript = "pc.item_find( 12900 ) == OBJ_HANDLE_NULL and npc.has_met(pc) and game.quests[99].state == qs_accepted";
            return(pc.FindItemByName(12900) == null && npc.HasMet(pc) && GetQuestState(99) == QuestState.Accepted);

        case 16:
        case 17:
            originalScript = "pc.item_find( 12900 ) != OBJ_HANDLE_NULL and npc.has_met(pc) and game.quests[99].state == qs_accepted";
            return(pc.FindItemByName(12900) != null && npc.HasMet(pc) && GetQuestState(99) == QuestState.Accepted);

        case 27:
        case 28:
        case 93:
        case 94:
            originalScript = "game.party_alignment == TRUE_NEUTRAL and game.global_flags[18] == 0";
            return(PartyAlignment == Alignment.NEUTRAL && !GetGlobalFlag(18));

        case 41:
        case 517:
        case 519:
            originalScript = "pc.money_get() >= 10000";
            return(pc.GetMoney() >= 10000);

        case 42:
            originalScript = "pc.money_get() >= 2000";
            return(pc.GetMoney() >= 2000);

        case 43:
            originalScript = "pc.money_get() >= 500";
            return(pc.GetMoney() >= 500);

        case 44:
            originalScript = "pc.money_get() >= 100";
            return(pc.GetMoney() >= 100);

        case 81:
        case 82:
            originalScript = "pc.item_find( 3000 ) != OBJ_HANDLE_NULL or pc.item_find(5800) != OBJ_HANDLE_NULL";
            return(pc.FindItemByName(3000) != null || pc.FindItemByName(5800) != null);

        case 87:
        case 88:
            originalScript = "game.global_flags[12] == 1 and game.quests[8].state == qs_accepted and game.global_flags[13] == 0";
            return(GetGlobalFlag(12) && GetQuestState(8) == QuestState.Accepted && !GetGlobalFlag(13));

        case 95:
            originalScript = "game.quests[2].state == qs_mentioned";
            return(GetQuestState(2) == QuestState.Mentioned);

        case 96:
            originalScript = "game.quests[2].state == qs_accepted";
            return(GetQuestState(2) == QuestState.Accepted);

        case 97:
            originalScript = "game.quests[2].state == qs_mentioned or game.quests[2].state == qs_accepted";
            return(GetQuestState(2) == QuestState.Mentioned || GetQuestState(2) == QuestState.Accepted);

        case 101:
            originalScript = "game.party_alignment & ALIGNMENT_EVIL != 0";
            return(PartyAlignment.IsEvil());

        case 102:
            originalScript = "game.party_alignment & ALIGNMENT_GOOD != 0";
            return(PartyAlignment.IsGood());

        case 103:
            originalScript = "game.party_alignment == LAWFUL_NEUTRAL or game.party_alignment == CHAOTIC_NEUTRAL or game.party_alignment == TRUE_NEUTRAL";
            return(PartyAlignment == Alignment.LAWFUL_NEUTRAL || PartyAlignment == Alignment.CHAOTIC_NEUTRAL || PartyAlignment == Alignment.NEUTRAL);

        case 161:
        case 162:
            originalScript = "pc.item_find( 3000 ) != OBJ_HANDLE_NULL";
            return(pc.FindItemByName(3000) != null);

        case 163:
        case 164:
            originalScript = "pc.item_find(5800) != OBJ_HANDLE_NULL and game.global_flags[3] == 0";
            return(pc.FindItemByName(5800) != null && !GetGlobalFlag(3));

        case 191:
        case 193:
            originalScript = "game.quests[3].state == qs_accepted";
            return(GetQuestState(3) == QuestState.Accepted);

        case 192:
        case 194:
            originalScript = "game.quests[3].state <= qs_mentioned";
            return(GetQuestState(3) <= QuestState.Mentioned);

        case 204:
        case 205:
            originalScript = "( game.quests[6].state == qs_mentioned or game.quests[6].state == qs_accepted ) and game.global_flags[10] == 1";
            return((GetQuestState(6) == QuestState.Mentioned || GetQuestState(6) == QuestState.Accepted) && GetGlobalFlag(10));

        case 206:
        case 207:
            originalScript = "game.quests[5].state == qs_accepted";
            return(GetQuestState(5) == QuestState.Accepted);

        case 261:
            originalScript = "pc.skill_level_get(npc,skill_diplomacy) >= 6";
            return(pc.GetSkillLevel(npc, SkillId.diplomacy) >= 6);

        case 353:
        case 354:
            originalScript = "game.areas[3] == 1";
            return(IsAreaKnown(3));

        case 355:
        case 356:
            originalScript = "game.areas[3] == 0";
            return(!IsAreaKnown(3));

        case 372:
        case 373:
        case 374:
        case 376:
        case 377:
        case 378:
        case 551:
        case 552:
            originalScript = "game.global_vars[2] >= 100";
            return(GetGlobalVar(2) >= 100);

        case 379:
        case 380:
        case 381:
        case 382:
        case 383:
        case 384:
        case 553:
        case 554:
            originalScript = "game.global_vars[2] <= 99";
            return(GetGlobalVar(2) <= 99);

        case 385:
        case 386:
            originalScript = "game.story_state >= 1";
            return(StoryState >= 1);

        case 401:
        case 403:
        case 421:
        case 423:
            originalScript = "pc.money_get() >= 21000";
            return(pc.GetMoney() >= 21000);

        case 437:
        case 439:
            originalScript = "pc.money_get() >= 7000";
            return(pc.GetMoney() >= 7000);

        case 463:
        case 465:
            originalScript = "pc.money_get() >= 30000";
            return(pc.GetMoney() >= 30000);

        case 481:
        case 483:
        case 501:
        case 503:
            originalScript = "pc.money_get() >= 25000";
            return(pc.GetMoney() >= 25000);

        case 543:
        case 545:
            originalScript = "pc.money_get() >= 35000";
            return(pc.GetMoney() >= 35000);

        case 563:
        case 565:
            originalScript = "pc.money_get() >= 22500";
            return(pc.GetMoney() >= 22500);

        case 573:
        case 575:
            originalScript = "pc.money_get() >= 27500";
            return(pc.GetMoney() >= 27500);

        case 581:
            originalScript = "game.global_vars[501] == 2";
            return(GetGlobalVar(501) == 2);

        case 591:
            originalScript = "game.quests[97].state == qs_accepted";
            return(GetQuestState(97) == QuestState.Accepted);

        case 592:
            originalScript = "game.quests[97].state != qs_accepted";
            return(GetQuestState(97) != QuestState.Accepted);

        case 601:
        case 602:
        case 701:
        case 702:
            originalScript = "game.global_flags[855] == 0";
            return(!GetGlobalFlag(855));

        case 603:
        case 604:
        case 703:
        case 704:
            originalScript = "game.global_flags[855] == 1";
            return(GetGlobalFlag(855));

        case 641:
            originalScript = "game.global_vars[523] <= 1";
            return(GetGlobalVar(523) <= 1);

        case 642:
            originalScript = "game.global_vars[523] >= 2";
            return(GetGlobalVar(523) >= 2);

        case 643:
            originalScript = "game.global_vars[524] <= 3";
            return(GetGlobalVar(524) <= 3);

        case 644:
            originalScript = "game.global_vars[524] >= 4";
            return(GetGlobalVar(524) >= 4);

        default:
            originalScript = null;
            return(true);
        }
    }
Esempio n. 6
0
    public bool CheckPrecondition(GameObject npc, GameObject pc, int lineNumber, out string originalScript)
    {
        switch (lineNumber)
        {
        case 15:
        case 16:
            originalScript = "anyone( pc.group_list(), \"has_item\", 3005 )";
            return(pc.GetPartyMembers().Any(o => o.HasItemByName(3005)));

        case 21:
        case 22:
            originalScript = "pc.skill_level_get(npc,skill_intimidate) >= 7";
            return(pc.GetSkillLevel(npc, SkillId.intimidate) >= 7);

        case 81:
        case 82:
            originalScript = "pc.money_get() >= 10000";
            return(pc.GetMoney() >= 10000);

        case 101:
        case 102:
        case 6171:
        case 6172:
            originalScript = "pc.follower_atmax() == 0 and not anyone( pc.group_list(), \"has_follower\", 14681 )";
            return(!pc.HasMaxFollowers() && !pc.GetPartyMembers().Any(o => o.HasFollowerByName(14681)));

        case 105:
        case 106:
        case 183:
        case 184:
        case 213:
        case 214:
        case 215:
        case 216:
        case 263:
        case 264:
        case 6175:
        case 6176:
        case 6723:
        case 6724:
        case 6783:
        case 6784:
        case 6785:
        case 6786:
            originalScript = "pc.follower_atmax() == 1";
            return(pc.HasMaxFollowers());

        case 107:
        case 6177:
            originalScript = "pc.follower_atmax() == 0 and anyone( pc.group_list(), \"has_follower\", 14681 )";
            return(!pc.HasMaxFollowers() && pc.GetPartyMembers().Any(o => o.HasFollowerByName(14681)));

        case 163:
        case 164:
        case 6103:
        case 6104:
            originalScript = "game.global_flags[62] == 1";
            return(GetGlobalFlag(62));

        case 165:
        case 166:
        case 6105:
        case 6106:
            originalScript = "game.global_flags[62] == 0";
            return(!GetGlobalFlag(62));

        case 181:
        case 182:
        case 211:
        case 212:
        case 6721:
        case 6722:
        case 6781:
        case 6782:
            originalScript = "pc.follower_atmax() == 0 and pc.stat_level_get(stat_level_paladin) == 0 and not anyone( pc.group_list(), \"has_follower\", 14681 )";
            return(!pc.HasMaxFollowers() && pc.GetStat(Stat.level_paladin) == 0 && !pc.GetPartyMembers().Any(o => o.HasFollowerByName(14681)));

        case 185:
        case 186:
        case 217:
        case 218:
        case 6725:
        case 6726:
        case 6787:
        case 6788:
            originalScript = "pc.follower_atmax() == 0 and pc.stat_level_get(stat_level_paladin) >= 1";
            return(!pc.HasMaxFollowers() && pc.GetStat(Stat.level_paladin) >= 1);

        case 187:
        case 219:
        case 6727:
        case 6789:
            originalScript = "pc.follower_atmax() == 0 and pc.stat_level_get(stat_level_paladin) == 0 and anyone( pc.group_list(), \"has_follower\", 14681 )";
            return(!pc.HasMaxFollowers() && pc.GetStat(Stat.level_paladin) == 0 && pc.GetPartyMembers().Any(o => o.HasFollowerByName(14681)));

        case 225:
        case 6805:
            originalScript = "game.global_flags[53] == 0";
            return(!GetGlobalFlag(53));

        case 261:
        case 262:
            originalScript = "pc.follower_atmax() == 0";
            return(!pc.HasMaxFollowers());

        case 333:
        case 334:
        case 601:
        case 602:
            originalScript = "(game.party_alignment == LAWFUL_EVIL) or (game.party_alignment == NEUTRAL_EVIL) or (game.party_alignment == CHAOTIC_EVIL)";
            return((PartyAlignment == Alignment.LAWFUL_EVIL) || (PartyAlignment == Alignment.NEUTRAL_EVIL) || (PartyAlignment == Alignment.CHAOTIC_EVIL));

        case 335:
        case 336:
            originalScript = "(game.party_alignment == LAWFUL_GOOD) or (game.party_alignment == NEUTRAL_GOOD) or (game.party_alignment == CHAOTIC_GOOD) or (game.party_alignment == LAWFUL_NEUTRAL)";
            return((PartyAlignment == Alignment.LAWFUL_GOOD) || (PartyAlignment == Alignment.NEUTRAL_GOOD) || (PartyAlignment == Alignment.CHAOTIC_GOOD) || (PartyAlignment == Alignment.LAWFUL_NEUTRAL));

        case 6123:
        case 6124:
            originalScript = "game.party_alignment & ALIGNMENT_EVIL != 0";
            return(PartyAlignment.IsEvil());

        case 6125:
        case 6126:
            originalScript = "(game.party_alignment & ALIGNMENT_GOOD != 0)  or (game.party_alignment == LAWFUL_NEUTRAL)";
            return((PartyAlignment.IsGood()) || (PartyAlignment == Alignment.LAWFUL_NEUTRAL));

        default:
            originalScript = null;
            return(true);
        }
    }
Esempio n. 7
0
    public override bool OnHeartbeat(GameObject attachee, GameObject triggerer)
    {
        if ((GetGlobalFlag(875) && !GetGlobalFlag(876) && GetQuestState(99) != QuestState.Completed && !triggerer.GetPartyMembers().Any(o => o.HasItemByName(12900))))
        {
            SetGlobalFlag(876, true);
            StartTimer(140000000, () => amii_dies());
        }

        if ((GetGlobalVar(723) == 0 && attachee.GetLeader() == null && !GameSystems.Combat.IsCombatActive()) && !PartyAlignment.IsGood())
        {
            attachee.CastSpell(WellKnownSpells.DeathWard, attachee);
            attachee.PendingSpellsToMemorized();
        }

        if ((GetGlobalVar(723) == 4 && attachee.GetLeader() == null && !GameSystems.Combat.IsCombatActive()) && !PartyAlignment.IsGood())
        {
            attachee.CastSpell(WellKnownSpells.ShieldOfFaith, attachee);
            attachee.PendingSpellsToMemorized();
        }

        SetGlobalVar(723, GetGlobalVar(723) + 1);
        return(RunDefault);
    }
Esempio n. 8
0
    public bool CheckPrecondition(GameObject npc, GameObject pc, int lineNumber, out string originalScript)
    {
        switch (lineNumber)
        {
        case 1021:
            originalScript = "grate_strength() == 0";
            return(grate_strength() == 0);

        case 1022:
            originalScript = "grate_strength() == 1";
            return(grate_strength() == 1);

        case 1023:
            originalScript = "grate_strength() == 2";
            return(grate_strength() == 2);

        case 1501:
        case 1502:
        case 1556:
            originalScript = "game.global_vars[454] & 2**8 == 0";
            return((GetGlobalVar(454) & 0x100) == 0);

        case 1503:
            originalScript = "game.global_vars[454] & 2**8 != 0 and game.global_flags[104] == 0";
            return((GetGlobalVar(454) & 0x100) != 0 && !GetGlobalFlag(104));

        case 1504:
            originalScript = "game.global_vars[454] & 2**9 != 0 and game.global_flags[104] == 0";
            return((GetGlobalVar(454) & 0x200) != 0 && !GetGlobalFlag(104));

        case 1505:
            originalScript = "npc_get(npc, 1) == 0 and 0==1";
            return(!ScriptDaemon.npc_get(npc, 1) && 0 == 1);

        case 1506:
            originalScript = "game.global_flags[104] == 0";
            return(!GetGlobalFlag(104));

        case 1507:
            originalScript = "game.global_flags[104] == 1";
            return(GetGlobalFlag(104));

        case 1521:
        case 1523:
            originalScript = "pc.skill_level_get(skill_diplomacy) < 8";
            return(pc.GetSkillLevel(SkillId.diplomacy) < 8);

        case 1522:
        case 1524:
            originalScript = "pc.skill_level_get(skill_diplomacy) >= 8";
            return(pc.GetSkillLevel(SkillId.diplomacy) >= 8);

        case 1557:
            originalScript = "game.global_vars[454] & 2**8 != 0";
            return((GetGlobalVar(454) & 0x100) != 0);

        case 1562:
        case 1575:
        case 1805:
        case 1902:
        case 1903:
        case 1905:
            originalScript = "game.party_alignment &  ALIGNMENT_EVIL != 0";
            return(PartyAlignment.IsEvil());

        case 1563:
        case 1576:
        case 1806:
        case 1906:
            originalScript = "game.party_alignment &  ALIGNMENT_GOOD != 0";
            return(PartyAlignment.IsGood());

        case 1564:
        case 1577:
        case 1807:
        case 1907:
            originalScript = "game.party_alignment &  ALIGNMENT_EVIL == 0 and game.party_alignment &  ALIGNMENT_GOOD == 0";
            return(!PartyAlignment.IsEvil() && !PartyAlignment.IsGood());

        case 1574:
        case 1804:
            originalScript = "tpsts(507, 1) == 0";
            return(!ScriptDaemon.tpsts(507, 1));

        default:
            originalScript = null;
            return(true);
        }
    }
    public bool CheckPrecondition(GameObject npc, GameObject pc, int lineNumber, out string originalScript)
    {
        switch (lineNumber)
        {
        case 41:
        case 42:
            originalScript = "anyone( pc.group_list(), \"item_find\", 3014 )";
            return(pc.GetPartyMembers().Any(o => o.FindItemByName(3014) != null));

        case 43:
        case 44:
            originalScript = "(not anyone( pc.group_list(), \"item_find\", 3014 )) and ( game.party_alignment & ALIGNMENT_GOOD != 0 )";
            return((!pc.GetPartyMembers().Any(o => o.FindItemByName(3014) != null)) && (PartyAlignment.IsGood()));

        case 45:
        case 46:
            originalScript = "(not anyone( pc.group_list(), \"item_find\", 3014 )) and ( game.party_alignment & ALIGNMENT_GOOD == 0 ) and ( pc.stat_level_get(stat_alignment) & ALIGNMENT_GOOD != 0 )";
            return((!pc.GetPartyMembers().Any(o => o.FindItemByName(3014) != null)) && (!PartyAlignment.IsGood()) && (pc.GetAlignment().IsGood()));

        case 47:
        case 48:
            originalScript = "(not anyone( pc.group_list(), \"item_find\", 3014 )) and ( game.party_alignment & ALIGNMENT_GOOD == 0 ) and ( pc.stat_level_get(stat_alignment) & ALIGNMENT_GOOD == 0 )";
            return((!pc.GetPartyMembers().Any(o => o.FindItemByName(3014) != null)) && (!PartyAlignment.IsGood()) && (!pc.GetAlignment().IsGood()));

        case 81:
        case 82:
            originalScript = "((game.party_alignment == LAWFUL_GOOD) or (game.party_alignment == NEUTRAL_GOOD) or (game.party_alignment == CHAOTIC_GOOD))";
            return((PartyAlignment == Alignment.LAWFUL_GOOD) || (PartyAlignment == Alignment.NEUTRAL_GOOD) || (PartyAlignment == Alignment.CHAOTIC_GOOD));

        case 83:
        case 84:
            originalScript = "(game.party_alignment != LAWFUL_GOOD) and (game.party_alignment != NEUTRAL_GOOD) and (game.party_alignment != CHAOTIC_GOOD) and ((pc.stat_level_get(stat_alignment) == LAWFUL_GOOD) or (pc.stat_level_get(stat_alignment) == NEUTRAL_GOOD) or (pc.stat_level_get(stat_alignment) == CHAOTIC_GOOD))";
            return((PartyAlignment != Alignment.LAWFUL_GOOD) && (PartyAlignment != Alignment.NEUTRAL_GOOD) && (PartyAlignment != Alignment.CHAOTIC_GOOD) && ((pc.GetAlignment() == Alignment.LAWFUL_GOOD) || (pc.GetAlignment() == Alignment.NEUTRAL_GOOD) || (pc.GetAlignment() == Alignment.CHAOTIC_GOOD)));

        case 85:
        case 86:
            originalScript = "(game.party_alignment != LAWFUL_GOOD) and (game.party_alignment != NEUTRAL_GOOD) and (game.party_alignment != CHAOTIC_GOOD) and (pc.stat_level_get(stat_alignment) != LAWFUL_GOOD) and (pc.stat_level_get(stat_alignment) != NEUTRAL_GOOD) and (pc.stat_level_get(stat_alignment) != CHAOTIC_GOOD)";
            return((PartyAlignment != Alignment.LAWFUL_GOOD) && (PartyAlignment != Alignment.NEUTRAL_GOOD) && (PartyAlignment != Alignment.CHAOTIC_GOOD) && (pc.GetAlignment() != Alignment.LAWFUL_GOOD) && (pc.GetAlignment() != Alignment.NEUTRAL_GOOD) && (pc.GetAlignment() != Alignment.CHAOTIC_GOOD));

        case 91:
        case 92:
            originalScript = "(pc.stat_level_get(stat_alignment) == LAWFUL_GOOD) or (pc.stat_level_get(stat_alignment) == NEUTRAL_GOOD) or (pc.stat_level_get(stat_alignment) == CHAOTIC_GOOD)";
            return((pc.GetAlignment() == Alignment.LAWFUL_GOOD) || (pc.GetAlignment() == Alignment.NEUTRAL_GOOD) || (pc.GetAlignment() == Alignment.CHAOTIC_GOOD));

        case 93:
        case 94:
            originalScript = "(pc.stat_level_get(stat_alignment) != LAWFUL_GOOD) and (pc.stat_level_get(stat_alignment) != NEUTRAL_GOOD) and (pc.stat_level_get(stat_alignment) != CHAOTIC_GOOD)";
            return((pc.GetAlignment() != Alignment.LAWFUL_GOOD) && (pc.GetAlignment() != Alignment.NEUTRAL_GOOD) && (pc.GetAlignment() != Alignment.CHAOTIC_GOOD));

        default:
            originalScript = null;
            return(true);
        }
    }
Esempio n. 10
0
    public bool CheckPrecondition(GameObject npc, GameObject pc, int lineNumber, out string originalScript)
    {
        switch (lineNumber)
        {
        case 2:
        case 3:
            originalScript = "pc.skill_level_get(npc,skill_diplomacy) >= 10";
            return(pc.GetSkillLevel(npc, SkillId.diplomacy) >= 10);

        case 4:
        case 5:
        case 11:
        case 12:
        case 21:
        case 22:
            originalScript = "anyone( pc.group_list(), \"has_item\", 3000 )";
            return(pc.GetPartyMembers().Any(o => o.HasItemByName(3000)));

        case 6:
        case 7:
        case 177:
        case 178:
            originalScript = "game.quests[3].state == qs_mentioned";
            return(GetQuestState(3) == QuestState.Mentioned);

        case 122:
        case 123:
            originalScript = "game.global_flags[300] == 0";
            return(!GetGlobalFlag(300));

        case 124:
        case 125:
            originalScript = "game.global_flags[300] == 1";
            return(GetGlobalFlag(300));

        case 131:
            originalScript = "game.party_alignment & ALIGNMENT_EVIL != 0";
            return(PartyAlignment.IsEvil());

        case 132:
            originalScript = "game.party_alignment & ALIGNMENT_GOOD != 0";
            return(PartyAlignment.IsGood());

        case 133:
            originalScript = "game.party_alignment & (ALIGNMENT_GOOD | ALIGNMENT_EVIL) == 0";
            return((PartyAlignment & (Alignment.NEUTRAL_GOOD | Alignment.NEUTRAL_EVIL)) == 0);

        case 134:
        case 137:
            originalScript = "game.party_alignment & ALIGNMENT_EVIL != 0 or game.party_alignment == CHAOTIC_NEUTRAL";
            return(PartyAlignment.IsEvil() || PartyAlignment == Alignment.CHAOTIC_NEUTRAL);

        case 135:
            originalScript = "game.party_alignment & ALIGNMENT_GOOD != 0 or game.party_alignment == LAWFUL_NEUTRAL or game.party_alignment == TRUE_NEUTRAL";
            return(PartyAlignment.IsGood() || PartyAlignment == Alignment.LAWFUL_NEUTRAL || PartyAlignment == Alignment.NEUTRAL);

        case 171:
        case 172:
            originalScript = "anyone( pc.group_list(), \"has_item\", 3000 ) and game.quests[4].state <= qs_mentioned";
            return(pc.GetPartyMembers().Any(o => o.HasItemByName(3000)) && GetQuestState(4) <= QuestState.Mentioned);

        case 173:
        case 174:
            originalScript = "anyone( pc.group_list(), \"has_item\", 3000 ) and game.quests[4].state == qs_accepted";
            return(pc.GetPartyMembers().Any(o => o.HasItemByName(3000)) && GetQuestState(4) == QuestState.Accepted);

        case 175:
        case 176:
            originalScript = "game.quests[4].state == qs_completed and game.quests[3].state == qs_unknown";
            return(GetQuestState(4) == QuestState.Completed && GetQuestState(3) == QuestState.Unknown);

        case 179:
        case 180:
            originalScript = "game.quests[3].state == qs_accepted and game.global_flags[4] == 0 and game.global_flags[5] == 0 and game.global_flags[300] == 0";
            return(GetQuestState(3) == QuestState.Accepted && !GetGlobalFlag(4) && !GetGlobalFlag(5) && !GetGlobalFlag(300));

        case 181:
        case 182:
            originalScript = "game.quests[3].state == qs_accepted and (game.global_flags[4] == 1 or game.global_flags[5] == 1)";
            return(GetQuestState(3) == QuestState.Accepted && (GetGlobalFlag(4) || GetGlobalFlag(5)));

        case 183:
        case 184:
        case 351:
        case 352:
            originalScript = "(game.story_state == 0 or game.story_state == 1) and game.global_flags[67] == 0 and game.party_alignment == CHAOTIC_GOOD";
            return((StoryState == 0 || StoryState == 1) && !GetGlobalFlag(67) && PartyAlignment == Alignment.CHAOTIC_GOOD);

        case 185:
        case 186:
        case 355:
        case 356:
            originalScript = "game.story_state >= 2 and game.global_flags[20] == 0 and game.party_alignment == CHAOTIC_GOOD";
            return(StoryState >= 2 && !GetGlobalFlag(20) && PartyAlignment == Alignment.CHAOTIC_GOOD);

        case 187:
        case 188:
        case 357:
        case 358:
            originalScript = "game.global_flags[20] == 1 and game.party_alignment == CHAOTIC_GOOD";
            return(GetGlobalFlag(20) && PartyAlignment == Alignment.CHAOTIC_GOOD);

        case 189:
        case 190:
            originalScript = "game.quests[3].state == qs_accepted and game.global_flags[4] == 0 and game.global_flags[5] == 0 and game.global_flags[300] == 1";
            return(GetQuestState(3) == QuestState.Accepted && !GetGlobalFlag(4) && !GetGlobalFlag(5) && GetGlobalFlag(300));

        case 201:
        case 202:
            originalScript = "pc.item_find(5800) != OBJ_HANDLE_NULL and game.global_flags[3] == 0 and pc.stat_level_get(stat_level_druid) == 0";
            return(pc.FindItemByName(5800) != null && !GetGlobalFlag(3) && pc.GetStat(Stat.level_druid) == 0);

        case 203:
        case 204:
        case 251:
        case 252:
            originalScript = "game.global_flags[3] == 1";
            return(GetGlobalFlag(3));

        case 205:
        case 206:
            originalScript = "pc.item_find(5800) != OBJ_HANDLE_NULL and pc.stat_level_get(stat_level_druid) >= 1";
            return(pc.FindItemByName(5800) != null && pc.GetStat(Stat.level_druid) >= 1);

        case 253:
            originalScript = "game.global_flags[3] == 0";
            return(!GetGlobalFlag(3));

        case 261:
        case 262:
            originalScript = "game.global_flags[4] == 1";
            return(GetGlobalFlag(4));

        case 263:
        case 264:
            originalScript = "game.global_flags[5] == 1";
            return(GetGlobalFlag(5));

        case 331:
        case 332:
            originalScript = "game.areas[3] == 0";
            return(!IsAreaKnown(3));

        case 333:
        case 334:
        case 335:
            originalScript = "game.areas[3] == 1";
            return(IsAreaKnown(3));

        default:
            originalScript = null;
            return(true);
        }
    }