Beispiel #1
0
    public override bool OnDialog(GameObject attachee, GameObject triggerer)
    {
        if ((GetGlobalFlag(819)))
        {
            attachee.Attack(triggerer);
            return(SkipDefault);
        }

        if ((attachee.GetLeader() != null))
        {
            triggerer.BeginDialog(attachee, 100); // spugnoir in party
        }
        else if ((GetGlobalVar(913) == 32))
        {
            triggerer.BeginDialog(attachee, 140); // have attacked 3 or more farm animals with spugnoir in party
        }
        else if ((SelectedPartyLeader.HasReputation(32) || SelectedPartyLeader.HasReputation(30) || SelectedPartyLeader.HasReputation(29)))
        {
            attachee.FloatLine(11004, triggerer); // have lawbreaker or convict or banished from hommlet rep
        }
        else
        {
            triggerer.BeginDialog(attachee, 1); // none of the above
        }

        return(SkipDefault);
    }
Beispiel #2
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);
    }
Beispiel #3
0
    public override bool OnDialog(GameObject attachee, GameObject triggerer)
    {
        if ((SelectedPartyLeader.HasReputation(32) || SelectedPartyLeader.HasReputation(30) || SelectedPartyLeader.HasReputation(29)))
        {
            attachee.FloatLine(11004, triggerer);
        }
        else if ((GetGlobalFlag(61)))
        {
            triggerer.BeginDialog(attachee, 500);
        }
        else if ((attachee.GetLeader() != null))
        {
            triggerer.BeginDialog(attachee, 300);
        }
        else if ((GetGlobalFlag(51)))
        {
            if ((GetQuestState(18) == QuestState.Completed))
            {
                triggerer.BeginDialog(attachee, 220);
            }
            else
            {
                triggerer.BeginDialog(attachee, 210);
            }
        }
        else
        {
            triggerer.BeginDialog(attachee, 1);
        }

        return(SkipDefault);
    }
    public override bool OnDialog(GameObject attachee, GameObject triggerer)
    {
        if ((SelectedPartyLeader.HasReputation(32) || SelectedPartyLeader.HasReputation(30) || SelectedPartyLeader.HasReputation(29)))
        {
            attachee.FloatLine(11004, triggerer);
        }
        else
        {
            if ((attachee.GetMap() == 5007))
            {
                if ((GetQuestState(19) == QuestState.Unknown))
                {
                    triggerer.BeginDialog(attachee, 1);
                }
                else if ((GetQuestState(19) == QuestState.Mentioned))
                {
                    triggerer.BeginDialog(attachee, 40);
                }
                else if ((GetQuestState(19) == QuestState.Accepted || GetQuestState(19) == QuestState.Botched))
                {
                    triggerer.BeginDialog(attachee, 50);
                }
                else
                {
                    triggerer.BeginDialog(attachee, 60);
                }
            }
            else
            {
                triggerer.BeginDialog(attachee, 90);
            }
        }

        return(SkipDefault);
    }
Beispiel #5
0
    public override bool OnDialog(GameObject attachee, GameObject triggerer)
    {
        if ((SelectedPartyLeader.HasReputation(32) || SelectedPartyLeader.HasReputation(30) || SelectedPartyLeader.HasReputation(29)))
        {
            attachee.FloatLine(11002, triggerer);
        }
        else
        {
            if ((triggerer.GetStat(Stat.charisma) >= 8 && triggerer.GetGender() == Gender.Female))
            {
                if ((attachee.HasMet(triggerer)))
                {
                    triggerer.BeginDialog(attachee, 70);
                }
                else
                {
                    triggerer.BeginDialog(attachee, 1);
                }
            }
            else
            {
                triggerer.BeginDialog(attachee, 80);
            }
        }

        return(SkipDefault);
    }
    public override bool OnDialog(GameObject attachee, GameObject triggerer)
    {
        if ((attachee.GetMap() == 5001 && (SelectedPartyLeader.HasReputation(32) || SelectedPartyLeader.HasReputation(30) || SelectedPartyLeader.HasReputation(29))))
        {
            attachee.FloatLine(11004, triggerer);
        }
        else
        {
            if ((!attachee.HasMet(triggerer)))
            {
                if ((!GetGlobalFlag(169)))
                {
                    triggerer.BeginDialog(attachee, 1);
                }
                else
                {
                    triggerer.BeginDialog(attachee, 40);
                }
            }
            else if ((GetGlobalFlag(169)))
            {
                triggerer.BeginDialog(attachee, 100);
            }
            else if ((GetGlobalFlag(170)))
            {
                triggerer.BeginDialog(attachee, 110);
            }
            else
            {
                triggerer.BeginDialog(attachee, 120);
            }
        }

        return(SkipDefault);
    }
Beispiel #7
0
    public override bool OnDialog(GameObject attachee, GameObject triggerer)
    {
        if ((SelectedPartyLeader.HasReputation(32) || SelectedPartyLeader.HasReputation(30) || SelectedPartyLeader.HasReputation(29)))
        {
            attachee.FloatLine(11004, triggerer);
        }
        else
        {
            if ((attachee.GetLeader() != null))
            {
                if ((GetGlobalFlag(207)))
                {
                    triggerer.BeginDialog(attachee, 80);
                }
                else
                {
                    triggerer.BeginDialog(attachee, 100);
                }
            }
            else if ((GetGlobalFlag(207)))
            {
                triggerer.BeginDialog(attachee, 50);
            }
            else if ((attachee.HasMet(triggerer)))
            {
                triggerer.BeginDialog(attachee, 30);
            }
            else
            {
                triggerer.BeginDialog(attachee, 1);
            }
        }

        return(SkipDefault);
    }
Beispiel #8
0
    public override bool OnDialog(GameObject attachee, GameObject triggerer)
    {
        if ((SelectedPartyLeader.HasReputation(32) || SelectedPartyLeader.HasReputation(30) || SelectedPartyLeader.HasReputation(29)))
        {
            attachee.FloatLine(11004, triggerer);
        }
        else
        {
            triggerer.BeginDialog(attachee, 1);
        }

        return(SkipDefault);
    }
Beispiel #9
0
    public bool CheckPrecondition(GameObject npc, GameObject pc, int lineNumber, out string originalScript)
    {
        switch (lineNumber)
        {
        case 1001:
            originalScript = "game.leader.reputation_has(25) == 0";
            return(!SelectedPartyLeader.HasReputation(25));

        case 1002:
            originalScript = "game.leader.reputation_has(25) == 1";
            return(SelectedPartyLeader.HasReputation(25));

        default:
            originalScript = null;
            return(true);
        }
    }
Beispiel #10
0
    public override bool OnDialog(GameObject attachee, GameObject triggerer)
    {
        if ((SelectedPartyLeader.HasReputation(32) || SelectedPartyLeader.HasReputation(30) || SelectedPartyLeader.HasReputation(29)))
        {
            attachee.FloatLine(11004, triggerer);
        }
        else
        {
            if ((GetGlobalVar(9) >= 2 && triggerer.GetGender() == Gender.Female))
            {
                SetGlobalVar(9, 2 + StoryState);
            }

            triggerer.BeginDialog(attachee, 1);
        }

        return(SkipDefault);
    }
    public override bool OnDialog(GameObject attachee, GameObject triggerer)
    {
        attachee.TurnTowards(triggerer);
        if ((SelectedPartyLeader.HasReputation(32) || SelectedPartyLeader.HasReputation(30) || SelectedPartyLeader.HasReputation(29)))
        {
            attachee.FloatLine(11004, triggerer);
        }
        else if ((attachee.GetMap() == 5001) && (GetGlobalVar(4) <= 4))
        {
            triggerer.BeginDialog(attachee, 110);
        }
        else if ((attachee.GetMap() == 5001) && (GetGlobalVar(4) == 6))
        {
            triggerer.BeginDialog(attachee, 200);
        }
        else
        {
            triggerer.BeginDialog(attachee, 1);
        }

        return(SkipDefault);
    }
    public override bool OnDialog(GameObject attachee, GameObject triggerer)
    {
        attachee.TurnTowards(triggerer);
        if ((SelectedPartyLeader.HasReputation(32) || SelectedPartyLeader.HasReputation(30) || SelectedPartyLeader.HasReputation(29)))
        {
            attachee.FloatLine(11004, triggerer);
        }
        else if (((GetQuestState(3) == QuestState.Completed) || (GetQuestState(4) == QuestState.Completed)))
        {
            triggerer.BeginDialog(attachee, 20);
        }
        else if (((attachee.HasMet(triggerer)) || (GetQuestState(3) == QuestState.Accepted) || (GetQuestState(4) == QuestState.Accepted)))
        {
            triggerer.BeginDialog(attachee, 10);
        }
        else
        {
            triggerer.BeginDialog(attachee, 1);
        }

        return(SkipDefault);
    }
Beispiel #13
0
    public bool CheckPrecondition(GameObject npc, GameObject pc, int lineNumber, out string originalScript)
    {
        switch (lineNumber)
        {
        case 2:
        case 4:
            originalScript = "game.party_alignment != LAWFUL_EVIL and game.party_alignment != NEUTRAL_EVIL and game.party_alignment != CHAOTIC_EVIL";
            return(PartyAlignment != Alignment.LAWFUL_EVIL && PartyAlignment != Alignment.NEUTRAL_EVIL && PartyAlignment != Alignment.CHAOTIC_EVIL);

        case 3:
        case 5:
            originalScript = "game.party_alignment == LAWFUL_EVIL or game.party_alignment == NEUTRAL_EVIL or game.party_alignment == CHAOTIC_EVIL or game.leader.reputation_has(32) == 1 or game.leader.reputation_has(30) == 1 or game.leader.reputation_has(29) == 1";
            return(PartyAlignment == Alignment.LAWFUL_EVIL || PartyAlignment == Alignment.NEUTRAL_EVIL || PartyAlignment == Alignment.CHAOTIC_EVIL || SelectedPartyLeader.HasReputation(32) || SelectedPartyLeader.HasReputation(30) || SelectedPartyLeader.HasReputation(29));

        case 25:
        case 26:
        case 71:
        case 72:
            originalScript = "pc.skill_level_get(npc, skill_sense_motive) >= 10";
            return(pc.GetSkillLevel(npc, SkillId.sense_motive) >= 10);

        default:
            originalScript = null;
            return(true);
        }
    }
Beispiel #14
0
    public override bool OnDialog(GameObject attachee, GameObject triggerer)
    {
        var st = attachee.GetInt(obj_f.npc_pad_i_5);

        attachee.TurnTowards(triggerer);
        if ((attachee.GetMap() == 5013))
        {
            attachee.FloatLine(23000, triggerer);
        }
        else if ((GetGlobalVar(915) == 32))
        {
            triggerer.BeginDialog(attachee, 570); // have attacked 3 or more farm animals with ronald in party
        }
        else if ((SelectedPartyLeader.HasReputation(32) || SelectedPartyLeader.HasReputation(30) || SelectedPartyLeader.HasReputation(29)))
        {
            attachee.FloatLine(11004, triggerer);
        }
        else if ((attachee.HasMet(triggerer)))
        {
            if (GetGlobalVar(692) == 2 && GetGlobalVar(693) == 3 && (attachee.GetLeader() == null))
            {
                attachee.FloatLine(600, triggerer); // not in party, Gruumsh
                return(SkipDefault);
            }
            else if (GetGlobalVar(692) == 1 && (attachee.GetLeader() == null))
            {
                triggerer.BeginDialog(attachee, 260); // not in party, Lareth
                return(SkipDefault);
            }
            else if (GetGlobalVar(692) == 3 && (GetGlobalVar(693) == 1 || GetGlobalVar(692) == 2) && (attachee.GetLeader() == null))
            {
                triggerer.BeginDialog(attachee, 90); // not in party, orcs present after issues
                return(SkipDefault);
            }
            else if (GetGlobalVar(692) == 3 && GetGlobalVar(693) == 0 && (attachee.GetLeader() == null))
            {
                triggerer.BeginDialog(attachee, 355); // not in party, orcs gone after issues
                return(SkipDefault);
            }
            else if ((GetGlobalVar(692) >= 5 && GetGlobalVar(692) <= 7) && (attachee.GetLeader() == null))
            {
                triggerer.BeginDialog(attachee, 100); // return with money
                return(SkipDefault);
            }
            else if (GetGlobalVar(692) == 0 && (attachee.GetLeader() == null))
            {
                triggerer.BeginDialog(attachee, 200); // return with no grudges
                return(SkipDefault);
            }
            else if (GetGlobalVar(692) == 2 && GetGlobalVar(693) == 0 && (attachee.GetLeader() == null))
            {
                triggerer.BeginDialog(attachee, 355); // not in party, returning after Gruumsh, Gruumsh gone
                return(SkipDefault);
            }
            else if (GetGlobalVar(692) == 8 && (attachee.GetLeader() == null))
            {
                triggerer.BeginDialog(attachee, 900); // not in party, left because party didn't pay for resurrection - not done yet!!!!
                return(SkipDefault);
            }
            else if (GetGlobalVar(692) == 9 && (attachee.GetLeader() == null))
            {
                attachee.FloatLine(600, triggerer); // left because hates party's guts, won't talk
                return(SkipDefault);
            }
            else if (GetGlobalVar(692) == 10 && (attachee.GetLeader() == null))
            {
                triggerer.BeginDialog(attachee, 2150); // done, left to talk to Dad
                return(SkipDefault);
            }
            else if (GetGlobalVar(692) == 11 && (attachee.GetLeader() == null))
            {
                triggerer.BeginDialog(attachee, 2200); // chatted with Dad, ready to go
                return(SkipDefault);
            }
            else if ((attachee.GetLeader() != null && st == 1))
            {
                triggerer.BeginDialog(attachee, 2060); // in party, wanting to resurrect
                return(SkipDefault);
            }
            else if ((attachee.GetLeader() != null && st == 0))
            {
                triggerer.BeginDialog(attachee, 120); // in party, not resurrecting yet
                return(SkipDefault);
            }
            else if ((attachee.GetLeader() != null && st == 2))
            {
                triggerer.BeginDialog(attachee, 2250); // back in party, post parents
                return(SkipDefault);
            }
            else
            {
                attachee.FloatLine(600, triggerer); // anything else he just won't talk
                return(SkipDefault);
            }
        }
        else
        {
            if ((GetGlobalVar(5) > 7) && !triggerer.HasReputation(2))
            {
                attachee.FloatLine(600, triggerer);
            }
            else
            {
                triggerer.BeginDialog(attachee, 1); // none of the above
            }
        }

        return(SkipDefault);
    }
    public bool CheckPrecondition(GameObject npc, GameObject pc, int lineNumber, out string originalScript)
    {
        switch (lineNumber)
        {
        case 4:
            originalScript = "game.global_vars[963] == 1";
            return(GetGlobalVar(963) == 1);

        case 5:
        case 16:
            originalScript = "game.global_vars[963] == 0";
            return(GetGlobalVar(963) == 0);

        case 6:
        case 21:
            originalScript = "game.global_flags[807] == 1";
            return(GetGlobalFlag(807));

        case 13:
            originalScript = "game.global_vars[963] == 8 and not get_2(npc)";
            return(GetGlobalVar(963) == 8 && !Scripts.get_2(npc));

        case 14:
            originalScript = "(game.quests[83].state == qs_mentioned or game.quests[83].state == qs_botched) and not get_1(npc)";
            return((GetQuestState(83) == QuestState.Mentioned || GetQuestState(83) == QuestState.Botched) && !Scripts.get_1(npc));

        case 15:
            originalScript = "game.global_vars[963] == 1 and game.leader.reputation_has(37) == 0 and game.leader.reputation_has(38) == 0";
            return(GetGlobalVar(963) == 1 && !SelectedPartyLeader.HasReputation(37) && !SelectedPartyLeader.HasReputation(38));

        case 17:
            originalScript = "game.global_vars[963] == 2 or game.global_vars[963] == 3";
            return(GetGlobalVar(963) == 2 || GetGlobalVar(963) == 3);

        case 18:
            originalScript = "game.global_vars[963] == 5";
            return(GetGlobalVar(963) == 5);

        case 19:
            originalScript = "game.global_vars[963] == 7";
            return(GetGlobalVar(963) == 7);

        case 20:
            originalScript = "game.global_vars[963] == 8";
            return(GetGlobalVar(963) == 8);

        case 101:
            originalScript = "pc.money_get() >= 10000000";
            return(pc.GetMoney() >= 10000000);

        case 102:
            originalScript = "pc.money_get() <= 9999900";
            return(pc.GetMoney() <= 9999900);

        case 151:
        case 171:
            originalScript = "pc.money_get() >= 5500000";
            return(pc.GetMoney() >= 5500000);

        case 152:
        case 172:
            originalScript = "pc.money_get() <= 5499900";
            return(pc.GetMoney() <= 5499900);

        case 211:
            originalScript = "pc.money_get() >= 8250000";
            return(pc.GetMoney() >= 8250000);

        case 212:
            originalScript = "pc.money_get() <= 8249900";
            return(pc.GetMoney() <= 8249900);

        case 271:
        case 311:
        case 321:
        case 331:
        case 341:
        case 351:
        case 361:
        case 371:
        case 381:
        case 391:
        case 401:
        case 411:
        case 421:
        case 431:
        case 441:
        case 451:
        case 461:
        case 471:
        case 481:
        case 491:
        case 501:
        case 511:
        case 521:
        case 531:
        case 541:
        case 601:
        case 641:
        case 681:
            originalScript = "game.global_vars[899] <= 24 and game.global_flags[810] == 0";
            return(GetGlobalVar(899) <= 24 && !GetGlobalFlag(810));

        case 272:
        case 312:
        case 322:
        case 332:
        case 342:
        case 352:
        case 362:
        case 372:
        case 382:
        case 392:
        case 402:
        case 412:
        case 422:
        case 432:
        case 442:
        case 452:
        case 462:
        case 472:
        case 482:
        case 492:
        case 502:
        case 512:
        case 522:
        case 532:
        case 542:
        case 602:
        case 642:
        case 682:
            originalScript = "game.global_vars[899] <= 24 and game.global_flags[810] == 1";
            return(GetGlobalVar(899) <= 24 && GetGlobalFlag(810));

        case 273:
        case 573:
        case 603:
        case 643:
        case 693:
            originalScript = "game.global_vars[899] == 0";
            return(GetGlobalVar(899) == 0);

        case 274:
        case 574:
        case 604:
        case 644:
        case 694:
            originalScript = "game.global_vars[899] == 1";
            return(GetGlobalVar(899) == 1);

        case 275:
        case 575:
        case 605:
        case 645:
        case 695:
            originalScript = "game.global_vars[899] == 2";
            return(GetGlobalVar(899) == 2);

        case 276:
        case 576:
        case 606:
        case 646:
        case 696:
            originalScript = "game.global_vars[899] == 3";
            return(GetGlobalVar(899) == 3);

        case 277:
        case 577:
        case 607:
        case 647:
        case 697:
            originalScript = "game.global_vars[899] == 4";
            return(GetGlobalVar(899) == 4);

        case 278:
        case 578:
        case 608:
        case 648:
        case 698:
            originalScript = "game.global_vars[899] == 5";
            return(GetGlobalVar(899) == 5);

        case 279:
        case 579:
        case 609:
        case 649:
        case 699:
            originalScript = "game.global_vars[899] == 6";
            return(GetGlobalVar(899) == 6);

        case 280:
        case 580:
        case 610:
        case 650:
        case 700:
            originalScript = "game.global_vars[899] == 7";
            return(GetGlobalVar(899) == 7);

        case 281:
        case 581:
        case 611:
        case 651:
        case 701:
            originalScript = "game.global_vars[899] == 8";
            return(GetGlobalVar(899) == 8);

        case 282:
        case 582:
        case 612:
        case 652:
        case 702:
            originalScript = "game.global_vars[899] == 9";
            return(GetGlobalVar(899) == 9);

        case 283:
        case 583:
        case 613:
        case 653:
        case 703:
            originalScript = "game.global_vars[899] == 10";
            return(GetGlobalVar(899) == 10);

        case 284:
        case 584:
        case 614:
        case 654:
        case 704:
            originalScript = "game.global_vars[899] == 11";
            return(GetGlobalVar(899) == 11);

        case 285:
        case 585:
        case 615:
        case 655:
        case 705:
            originalScript = "game.global_vars[899] == 12";
            return(GetGlobalVar(899) == 12);

        case 286:
        case 586:
        case 616:
        case 656:
        case 706:
            originalScript = "game.global_vars[899] == 13";
            return(GetGlobalVar(899) == 13);

        case 287:
        case 587:
        case 617:
        case 657:
        case 707:
            originalScript = "game.global_vars[899] == 14";
            return(GetGlobalVar(899) == 14);

        case 288:
        case 588:
        case 618:
        case 658:
        case 708:
            originalScript = "game.global_vars[899] == 15";
            return(GetGlobalVar(899) == 15);

        case 289:
        case 589:
        case 619:
        case 659:
        case 709:
            originalScript = "game.global_vars[899] == 16";
            return(GetGlobalVar(899) == 16);

        case 290:
        case 590:
        case 620:
        case 660:
        case 710:
            originalScript = "game.global_vars[899] == 17";
            return(GetGlobalVar(899) == 17);

        case 291:
        case 591:
        case 621:
        case 661:
        case 711:
            originalScript = "game.global_vars[899] == 18";
            return(GetGlobalVar(899) == 18);

        case 292:
        case 592:
        case 622:
        case 662:
        case 712:
            originalScript = "game.global_vars[899] == 19";
            return(GetGlobalVar(899) == 19);

        case 293:
        case 593:
        case 623:
        case 663:
        case 713:
            originalScript = "game.global_vars[899] == 20";
            return(GetGlobalVar(899) == 20);

        case 294:
        case 594:
        case 624:
        case 664:
        case 714:
            originalScript = "game.global_vars[899] == 21";
            return(GetGlobalVar(899) == 21);

        case 295:
        case 595:
        case 625:
        case 665:
        case 715:
            originalScript = "game.global_vars[899] == 22";
            return(GetGlobalVar(899) == 22);

        case 296:
        case 596:
        case 626:
        case 666:
        case 716:
            originalScript = "game.global_vars[899] == 23";
            return(GetGlobalVar(899) == 23);

        case 297:
        case 597:
        case 627:
        case 667:
        case 717:
            originalScript = "game.global_vars[899] == 24";
            return(GetGlobalVar(899) == 24);

        case 298:
        case 299:
        case 313:
        case 323:
        case 333:
        case 343:
        case 353:
        case 363:
        case 373:
        case 383:
        case 393:
        case 403:
        case 413:
        case 423:
        case 433:
        case 443:
        case 453:
        case 463:
        case 473:
        case 483:
        case 493:
        case 503:
        case 513:
        case 523:
        case 533:
        case 543:
        case 598:
        case 628:
        case 629:
        case 668:
        case 669:
        case 683:
        case 718:
            originalScript = "game.global_vars[899] == 25";
            return(GetGlobalVar(899) == 25);

        case 721:
            originalScript = "(game.party_alignment == LAWFUL_NEUTRAL or game.party_alignment == LAWFUL_GOOD or game.party_alignment == NEUTRAL_GOOD) and game.global_flags[807] == 1";
            return((PartyAlignment == Alignment.LAWFUL_NEUTRAL || PartyAlignment == Alignment.LAWFUL_GOOD || PartyAlignment == Alignment.NEUTRAL_GOOD) && GetGlobalFlag(807));

        case 722:
            originalScript = "(game.party_alignment == LAWFUL_EVIL or game.party_alignment == TRUE_NEUTRAL or game.party_alignment == CHAOTIC_GOOD) and game.global_flags[807] == 1";
            return((PartyAlignment == Alignment.LAWFUL_EVIL || PartyAlignment == Alignment.NEUTRAL || PartyAlignment == Alignment.CHAOTIC_GOOD) && GetGlobalFlag(807));

        case 723:
            originalScript = "(game.party_alignment == NEUTRAL_EVIL or game.party_alignment == CHAOTIC_EVIL or game.party_alignment == CHAOTIC_NEUTRAL) and game.global_flags[807] == 1";
            return((PartyAlignment == Alignment.NEUTRAL_EVIL || PartyAlignment == Alignment.CHAOTIC_EVIL || PartyAlignment == Alignment.CHAOTIC_NEUTRAL) && GetGlobalFlag(807));

        default:
            originalScript = null;
            return(true);
        }
    }
    public static bool should_display_dialog_node(string node_name)
    {
        var cur_map = SelectedPartyLeader.GetMap();

        if (node_name == "Temple Entrance")
        {
            if (cur_map == 5064)
            {
                return(false);
            }
        }
        else if (node_name == "Temple Tower Exterior")
        {
            if (cur_map == 5113)
            {
                return(false);
            }

            if (ScriptDaemon.get_f("visited_temple_tower_exterior"))
            {
                return(true);
            }
        }
        else if (node_name == "More Upper Proper")
        {
            var option_count = 0;
            if (cur_map != 5064)
            {
                option_count += 1;
            }

            if (cur_map != 5113 && ScriptDaemon.get_f("visited_temple_tower_exterior"))
            {
                option_count += 1;
            }

            if (cur_map != 5065 && ScriptDaemon.get_f("visited_temple_tower_interior"))
            {
                option_count += 1;
            }

            if (cur_map != 5093 && ScriptDaemon.get_f("visited_temple_burnt_farmhouse"))
            {
                option_count += 1;
            }

            if (cur_map != 5092 && ScriptDaemon.get_f("visited_temple_escape_tunnel"))
            {
                option_count += 1;
            }

            if (cur_map != 5112 && ScriptDaemon.get_f("visited_temple_ruined_building"))
            {
                option_count += 1;
            }

            return(option_count >= 5);
        }
        else if (node_name == "Level 1")
        {
            if (cur_map == 5066)
            {
                return(false);
            }

            if (ScriptDaemon.get_f("visited_level_1_north_entrance") || ScriptDaemon.get_f("visited_level_1_south_entrance") || ScriptDaemon.get_f("visited_level_1_south_entrance") || SelectedPartyLeader.HasReputation(11) || ScriptDaemon.get_f("visited_secret_spiral_staircase"))
            {
                return(true);
            }
        }
        else if (node_name == "Level 1 - North")
        {
            if (ScriptDaemon.get_f("visited_level_1_north_entrance"))
            {
                return(true);
            }
        }
        else if (node_name == "Level 1 - South")
        {
            if (ScriptDaemon.get_f("visited_level_1_south_entrance"))
            {
                return(true);
            }
        }
        else if (node_name == "Level 1 - Romag")
        {
            if (SelectedPartyLeader.HasReputation(11))
            {
                return(true);
            }
        }
        else if (node_name == "Secret Spiral Staircase")
        {
            if (ScriptDaemon.get_f("visited_secret_spiral_staircase"))
            {
                return(true);
            }
        }
        else if (node_name == "Level 2")
        {
            if (cur_map == 5067)
            {
                return(false);
            }

            if (ScriptDaemon.get_f("visited_level_2_north_west_entrance") || ScriptDaemon.get_f("visited_level_2_centre_entrance") || SelectedPartyLeader.HasReputation(13) || SelectedPartyLeader.HasReputation(12) || SelectedPartyLeader.HasReputation(10))
            {
                return(true);
            }
        }
        else if (node_name == "Level 2 - North West")
        {
            if (ScriptDaemon.get_f("visited_level_2_north_west_entrance"))
            {
                return(true);
            }
        }
        else if (node_name == "Level 2 - Centre")
        {
            if (ScriptDaemon.get_f("visited_level_2_centre_entrance"))
            {
                return(true);
            }
        }
        else if (node_name == "Level 2 - Alrrem")
        {
            if (SelectedPartyLeader.HasReputation(13))
            {
                return(true);
            }
        }
        else if (node_name == "Level 2 - Belsornig")
        {
            if (SelectedPartyLeader.HasReputation(12))
            {
                return(true);
            }
        }
        else if (node_name == "Level 2 - Kelno")
        {
            if (SelectedPartyLeader.HasReputation(10))
            {
                return(true);
            }
        }
        else if (node_name == "Level 2 More")
        {
            var option_count = 0;
            if (ScriptDaemon.get_f("visited_level_2_north_west_entrance"))
            {
                option_count += 1;
            }

            if (ScriptDaemon.get_f("visited_level_2_centre_entrance"))
            {
                option_count += 1;
            }

            if (SelectedPartyLeader.HasReputation(13))
            {
                option_count += 1;
            }

            if (SelectedPartyLeader.HasReputation(12))
            {
                option_count += 1;
            }

            if (SelectedPartyLeader.HasReputation(10))
            {
                option_count += 1;
            }

            return(option_count >= 5);
        }
        else if (node_name == "Secret Spiral Staircase")
        {
            if (ScriptDaemon.get_f("visited_secret_spiral_staircase"))
            {
                return(true);
            }
        }
        else if (node_name == "Level 3")
        {
            if (cur_map == 5105)
            {
                return(false);
            }

            if (ScriptDaemon.get_f("visited_level_3_east_entrance") || ScriptDaemon.get_f("visited_level_3_west_entrance") || ScriptDaemon.get_f("visited_level_3_south_west_entrance") || ScriptDaemon.get_f("visited_level_3_falrinth"))
            {
                return(true);
            }
        }
        else if (node_name == "Level 3 - East")
        {
            if (ScriptDaemon.get_f("visited_level_3_east_entrance"))
            {
                return(true);
            }
        }
        else if (node_name == "Level 3 - West")
        {
            if (ScriptDaemon.get_f("visited_level_3_west_entrance"))
            {
                return(true);
            }
        }
        else if (node_name == "Level 3 - South")
        {
            if (ScriptDaemon.get_f("visited_level_3_south_west_entrance"))
            {
                return(true);
            }
        }
        else if (node_name == "Level 3 - Falrinth")
        {
            if (ScriptDaemon.get_f("visited_level_3_falrinth"))
            {
                return(true);
            }
        }
        else if (node_name == "Level 4")
        {
            if (cur_map == 5080)
            {
                return(false);
            }

            if (ScriptDaemon.get_f("visited_level_4_main_entrance") || ScriptDaemon.get_f("visited_level_4_nexus") || ScriptDaemon.get_f("visited_level_4_hedrack"))
            {
                return(true);
            }
        }
        else if (node_name == "Level 4 - Main")
        {
            if (ScriptDaemon.get_f("visited_level_4_main_entrance"))
            {
                return(true);
            }
        }
        else if (node_name == "Level 4 - Nexus")
        {
            if (ScriptDaemon.get_f("visited_level_4_nexus"))
            {
                return(true);
            }
        }
        else if (node_name == "Level 4 - Hedrack")
        {
            if (ScriptDaemon.get_f("visited_level_4_hedrack"))
            {
                return(true);
            }
        }
        else if (node_name == "Nodes")
        {
            if (ScriptDaemon.get_f("visited_air_node") || ScriptDaemon.get_f("visited_earth_node") || ScriptDaemon.get_f("visited_fire_node") || ScriptDaemon.get_f("visited_water_node"))
            {
                return(true);
            }
        }
        else if (node_name == "Air Node")
        {
            if (ScriptDaemon.get_f("visited_air_node"))
            {
                return(true);
            }
        }
        else if (node_name == "Earth Node")
        {
            if (ScriptDaemon.get_f("visited_earth_node"))
            {
                return(true);
            }
        }
        else if (node_name == "Fire Node")
        {
            if (ScriptDaemon.get_f("visited_fire_node"))
            {
                return(true);
            }
        }
        else if (node_name == "Water Node")
        {
            if (ScriptDaemon.get_f("visited_water_node"))
            {
                return(true);
            }
        }
        else if (node_name == "Zuggtmoy Level")
        {
            if (cur_map == 5079)
            {
                return(false);
            }

            if (ScriptDaemon.get_f("visited_zuggtmoy_level"))
            {
                return(true);
            }
        }

        return(true);
    }
Beispiel #17
0
    public bool CheckPrecondition(GameObject npc, GameObject pc, int lineNumber, out string originalScript)
    {
        switch (lineNumber)
        {
        case 2:
            originalScript = "not npc.has_met(pc) and is_daytime() == 1";
            return(!npc.HasMet(pc) && Utilities.is_daytime());

        case 3:
            originalScript = "not npc.has_met(pc) and not is_daytime() == 1";
            return(!npc.HasMet(pc) && !(Utilities.is_daytime()));

        case 4:
            originalScript = "npc.has_met(pc) and is_daytime() == 1";
            return(npc.HasMet(pc) && Utilities.is_daytime());

        case 5:
            originalScript = "npc.has_met(pc) and not is_daytime() == 1 and game.quests[77].state == qs_unknown";
            return(npc.HasMet(pc) && !(Utilities.is_daytime()) && GetQuestState(77) == QuestState.Unknown);

        case 6:
            originalScript = "not is_daytime() == 1 and (game.quests[77].state == qs_mentioned or game.quests[77].state == qs_accepted) and pc.skill_level_get(npc,skill_sense_motive) >= 10";
            return(!(Utilities.is_daytime()) && (GetQuestState(77) == QuestState.Mentioned || GetQuestState(77) == QuestState.Accepted) && pc.GetSkillLevel(npc, SkillId.sense_motive) >= 10);

        case 7:
            originalScript = "not is_daytime() == 1 and game.quests[77].state == qs_completed and pc.skill_level_get(npc,skill_sense_motive) >= 10 and not npc_get(npc,2)";
            return(!(Utilities.is_daytime()) && GetQuestState(77) == QuestState.Completed && pc.GetSkillLevel(npc, SkillId.sense_motive) >= 10 && !ScriptDaemon.npc_get(npc, 2));

        case 21:
            originalScript = "game.quests[74].state != qs_unknown and game.quests[74].state != qs_completed and game.quests[69].state == qs_unknown and not npc_get(npc,1)";
            return(GetQuestState(74) != QuestState.Unknown && GetQuestState(74) != QuestState.Completed && GetQuestState(69) == QuestState.Unknown && !ScriptDaemon.npc_get(npc, 1));

        case 22:
            originalScript = "game.quests[69].state != qs_unknown and game.quests[69].state != qs_completed and game.quests[74].state == qs_unknown and not npc_get(npc,1)";
            return(GetQuestState(69) != QuestState.Unknown && GetQuestState(69) != QuestState.Completed && GetQuestState(74) == QuestState.Unknown && !ScriptDaemon.npc_get(npc, 1));

        case 23:
            originalScript = "game.quests[74].state != qs_unknown and game.quests[74].state != qs_completed and game.quests[69].state != qs_unknown and game.quests[69].state != qs_completed and not npc_get(npc,1)";
            return(GetQuestState(74) != QuestState.Unknown && GetQuestState(74) != QuestState.Completed && GetQuestState(69) != QuestState.Unknown && GetQuestState(69) != QuestState.Completed && !ScriptDaemon.npc_get(npc, 1));

        case 24:
            originalScript = "game.global_vars[978] == 1 and (pc.skill_level_get(npc,skill_spot) >= 11 or party_spot_check() >= 11) and game.global_vars[966] == 0";
            throw new NotSupportedException("Conversion failed.");

        case 25:
            originalScript = "game.global_vars[978] == 3 and game.global_vars[966] == 1";
            return(GetGlobalVar(978) == 3 && GetGlobalVar(966) == 1);

        case 26:
            originalScript = "game.global_vars[978] == 4 and game.global_vars[966] == 1";
            return(GetGlobalVar(978) == 4 && GetGlobalVar(966) == 1);

        case 27:
            originalScript = "game.global_vars[978] == 5 and game.global_vars[966] == 1";
            return(GetGlobalVar(978) == 5 && GetGlobalVar(966) == 1);

        case 31:
        case 41:
            originalScript = "pc.stat_level_get(stat_race) == race_gnome";
            return(pc.GetRace() == RaceId.svirfneblin);

        case 71:
        case 171:
            originalScript = "game.global_flags[986] == 1";
            return(GetGlobalFlag(986));

        case 72:
        case 181:
            originalScript = "game.global_flags[981] == 1";
            return(GetGlobalFlag(981));

        case 131:
            originalScript = "game.global_vars[999] >= 1 and game.quests[69].state != completed";
            return(GetGlobalVar(999) >= 1 && GetQuestState(69) != QuestState.Completed);

        case 221:
            originalScript = "npc_get(npc,2)";
            return(ScriptDaemon.npc_get(npc, 2));

        case 222:
            originalScript = "npc_get(npc,3)";
            return(ScriptDaemon.npc_get(npc, 3));

        case 231:
        case 341:
            originalScript = "pc.skill_level_get(npc,skill_sense_motive) >= 9";
            return(pc.GetSkillLevel(npc, SkillId.sense_motive) >= 9);

        case 232:
        case 342:
            originalScript = "pc.skill_level_get(npc,skill_sense_motive) <= 8";
            return(pc.GetSkillLevel(npc, SkillId.sense_motive) <= 8);

        case 251:
        case 253:
            originalScript = "not anyone( pc.group_list(), \"has_follower\", 8714 )";
            return(!pc.GetPartyMembers().Any(o => o.HasFollowerByName(8714)));

        case 252:
        case 254:
            originalScript = "anyone( pc.group_list(), \"has_follower\", 8714 )";
            return(pc.GetPartyMembers().Any(o => o.HasFollowerByName(8714)));

        case 261:
        case 281:
            originalScript = "pc.skill_level_get(npc,skill_sense_motive) >= 8";
            return(pc.GetSkillLevel(npc, SkillId.sense_motive) >= 8);

        case 262:
        case 282:
            originalScript = "pc.skill_level_get(npc,skill_sense_motive) <= 7";
            return(pc.GetSkillLevel(npc, SkillId.sense_motive) <= 7);

        case 271:
        case 291:
            originalScript = "game.leader.reputation_has(36) == 1";
            return(SelectedPartyLeader.HasReputation(36));

        case 272:
        case 292:
            originalScript = "game.leader.reputation_has(36) == 0";
            return(!SelectedPartyLeader.HasReputation(36));

        case 361:
            originalScript = "is_daytime() == 1 and not npc_get(npc,4)";
            return(Utilities.is_daytime() && !ScriptDaemon.npc_get(npc, 4));

        case 362:
            originalScript = "is_daytime() == 1 and npc_get(npc,4)";
            return(Utilities.is_daytime() && ScriptDaemon.npc_get(npc, 4));

        case 363:
            originalScript = "not is_daytime() == 1";
            return(!(Utilities.is_daytime()));

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