Beispiel #1
0
    protected override void Init()
    {
        Add(new TimeTask(.05f, new IdleState(_toManage)));

            Task activateStoryIntroPartOne = (new Task(new MoveThenDoState(_toManage, new Vector3(14f, Y_COORDINATE, .3f), new MarkTaskDone(_toManage))));
            activateStoryIntroPartOne.AddFlagToSet(FlagStrings.oldSiblingIntroStoryOnePartOneFlag);
            Add(activateStoryIntroPartOne);

            Add(new TimeTask(3.5f, new IdleState(_toManage)));

            Add(new Task(new MoveThenDoState(_toManage, new Vector3(24f, Y_COORDINATE, .3f), new MarkTaskDone(_toManage))));

            //Task activateStoryIntroPartTwo = (new Task(new MoveThenDoState(_toManage, new Vector3(22f, Y_COORDINATE, .3f), new MarkTaskDone(_toManage))));
            //activateStoryIntroPartTwo.AddFlagToSet(FlagStrings.oldSiblingIntroStoryOnePartTwoFlag);
            //Add(activateStoryIntroPartTwo);

            //Add(new TimeTask(3f, new IdleState(_toManage)));
            Add(new TimeTask(10f, new WaitTillPlayerCloseState(_toManage, ref _toManage.player,2f)));

            Add(new Task(new MoveThenDoState(_toManage, new Vector3(30f, Y_COORDINATE, .3f), new MarkTaskDone(_toManage))));

        Task siblingOldReachedCarpenterSonTask = new TimeTask(.05f, new IdleState(_toManage)); // at top staircase
            siblingOldReachedCarpenterSonTask.AddFlagToSet(FlagStrings.siblingOldReachedCarpenterSonFlag);
            Add(siblingOldReachedCarpenterSonTask);
            Add(new TimeTask(12.5f, new IdleState(_toManage)));

            Task siblingChatWithCarpenterPartOne = new Task(new MoveThenDoState(_toManage, new Vector3 (32f, Y_COORDINATE, .3f), new MarkTaskDone(_toManage))); // at top staircase
            siblingChatWithCarpenterPartOne.AddFlagToSet(FlagStrings.siblingOldGreetCarpenterSonOldPartOneFlag);
            Add(siblingChatWithCarpenterPartOne);

            Add(new TimeTask(6f, new IdleState(_toManage)));
    }
Beispiel #2
0
    protected override void SetUpSchedules()
    {
        BeginDayChat = new NPCConvoSchedule(this, NPCManager.instance.getNPC(StringsNPC.CarpenterYoung), new YoungCarpenterSonToCarpenterConvo());
        BeginDayChat.SetCanInteract(false);
        BeginDayWithDad = new Schedule(this, Schedule.priorityEnum.DoNow);
        TimeTask BeginDayTimeTask = new TimeTask(10, new WaitTillPlayerCloseState(this, ref player));
          		BeginDayTimeTask.AddFlagToSet(FlagStrings.carpenterSonYoungConvoWithDadFinished);
        BeginDayWithDad.Add(BeginDayTimeTask);
          		this.AddSchedule(BeginDayWithDad);
        this.AddSchedule(BeginDayChat);

        TalkWithCastleman = new Schedule (this, Schedule.priorityEnum.High);
        TalkWithCastleman.Add(new TimeTask(300, new WaitTillPlayerCloseState(this, ref player)));
        Task setFlag = (new TimeTask(2f, new IdleState(this)));
        setFlag.AddFlagToSet(FlagStrings.InitialConversationWithCSONFriend);
        TalkWithCastleman.Add(setFlag);
        TalkWithCastleman.AddFlagGroup("CSONMEETCASTLEMAN");

        TalkWithCastlemanNotFriend = new Schedule (this, Schedule.priorityEnum.High);
        TalkWithCastlemanNotFriend.Add(new TimeTask(300, new WaitTillPlayerCloseState(this, ref player)));
        Task setFlagNOT = (new TimeTask(2f, new IdleState(this)));
        setFlagNOT.AddFlagToSet(FlagStrings.InitialConversationWithCSONNOTFriend);
        TalkWithCastlemanNotFriend.Add(setFlagNOT);
        TalkWithCastleman.AddFlagGroup("CSONMEETCASTLEMAN");

        Woodworking = new Schedule( this, Schedule.priorityEnum.Medium);
        //Woodworking.Add (new TimeTask(300, new WaitState(this)));
        Task whittleTask = new TimeTask(30, new AbstractAnimationState(this, "Whittle"));
        whittleTask.AddFlagToSet(FlagStrings.carpenterSonYoungCompletedWhittling);

        whittleSchedule = new Schedule(this, Schedule.priorityEnum.DoNow);
        whittleSchedule.SetCanInteract(false);
        whittleSchedule.Add(whittleTask);

        Task whittleDoneTask = new Task(new IdleState(this));
        whittleDoneSchedule = new Schedule(this, Schedule.priorityEnum.Medium);
        whittleDoneSchedule.SetCanInteract(true);
        whittleDoneSchedule.Add(whittleDoneTask);
    }
Beispiel #3
0
    //NPCConvoSchedule dateWithLG;
    protected override void SetUpSchedules()
    {
        SetupReactions();
        moveBack = new Schedule(this, Schedule.priorityEnum.High);
        moveBack.Add(new Task(new MoveThenDoState(this, startingPosition, new MarkTaskDone(this))));

        moveToBeach = new Schedule(this, Schedule.priorityEnum.DoNow);
        moveToBeach.Add(new Task(new MoveThenDoState(this, new Vector3(MapLocations.MiddleOfBeachMiddle.x+1.5f, MapLocations.MiddleOfBeachMiddle.y, MapLocations.MiddleOfBeachMiddle.z), new MarkTaskDone(this))));
        Task reachedBeach = new TimeTask(.1f,new IdleState(this));
        reachedBeach.AddFlagToSet(FarmerFamilyFlagStrings.GirlCastleDateOne);
        moveToBeach.Add(reachedBeach);
        moveToBeach.Add(new TimeTask(5.3f, new IdleState(this)));

        Task reachedBeachTwo = new TimeTask(.1f,new IdleState(this));
        reachedBeachTwo.AddFlagToSet(FarmerFamilyFlagStrings.GirlCastleDateTwo);
        moveToBeach.Add(reachedBeachTwo);
        moveToBeach.Add(new TimeTask(7.3f, new IdleState(this)));

        Task reachedBeachThree = new TimeTask(.1f,new IdleState(this));
        reachedBeachThree.AddFlagToSet(FarmerFamilyFlagStrings.GirlCastleDateThree);
        moveToBeach.Add(reachedBeachThree);
        moveToBeach.Add(new TimeTask(3.3f, new IdleState(this)));

        Task reachedBeachFour = new TimeTask(.1f,new IdleState(this));
        reachedBeachFour.AddFlagToSet(FarmerFamilyFlagStrings.GirlCastleDateFour);
        moveToBeach.Add(reachedBeachFour);
        moveToBeach.Add(new TimeTask(6.3f, new IdleState(this)));

        Task reachedBeachFive = new TimeTask(.1f,new IdleState(this));
        reachedBeachFive.AddFlagToSet(FarmerFamilyFlagStrings.GirlCastleDateFive);
        moveToBeach.Add(reachedBeachFive);
        moveToBeach.Add(new TimeTask(2.3f, new IdleState(this)));

        Task reachedBeachSix = new TimeTask(.1f,new IdleState(this));
        reachedBeachSix.AddFlagToSet(FarmerFamilyFlagStrings.GirlCastleDateSix);
        moveToBeach.Add(reachedBeachSix);
        moveToBeach.Add(new TimeTask(6f, new IdleState(this)));

        Task reachedBeachEnd = new TimeTask(.1f,new IdleState(this));
        reachedBeachEnd.AddFlagToSet(FlagStrings.EndOfDate);
        moveToBeach.Add(reachedBeachEnd);
        moveToBeach.Add(new TimeTask(3f, new IdleState(this)));
        moveToBeach.SetCanInteract(false);

        /*dateWithLG =  new NPCConvoSchedule(this, NPCManager.instance.getNPC(StringsNPC.LighthouseGirlMiddle),
            new MiddleCastleManToLighthouseGirl(), Schedule.priorityEnum.DoConvo);
        dateWithLG.SetCanNotInteractWithPlayer();*/
    }
Beispiel #4
0
    protected override void SetUpSchedules()
    {
        InitialSchedule = new ScheduleLoop(this, Schedule.priorityEnum.Medium);
        Task waitForPlayer = new Task(new WaitTillPlayerCloseState(this, ref player));
        InitialSchedule.Add(waitForPlayer);
        Task SayHi = new Task(new AbstractAnimationState(this, "Hi"), this, 0.1f, "Psst! Come over here!");
        InitialSchedule.Add(SayHi);
        InitialSchedule.Add(new Task(new WaitTillPlayerCloseState(this, ref player)));
        Task playWithSword = new Task(new AbstractAnimationState(this, "Play With Sword"));
        InitialSchedule.Add(playWithSword);

        AttemptToTellOnLighthouse = new NPCConvoSchedule(this, NPCManager.instance.getNPC(StringsNPC.FarmerFatherYoung),
            new LightHouseToFarmerFather(),Schedule.priorityEnum.DoConvo);
        AttemptToTellOnLighthouse.SetCanNotInteractWithPlayer();
        tellOnLighthouseConversationSchedule = new NPCConvoSchedule(this, NPCManager.instance.getNPC(StringsNPC.LighthouseGirlYoung),
            new YoungFarmerMotherToLighthouseGirlToldOn(),Schedule.priorityEnum.DoConvo);

        Task SetFlagToBeach = (new Task(new MoveThenDoState(this, this.gameObject.transform.position, new MarkTaskDone(this))));
        SetFlagToBeach.AddFlagToSet(FlagStrings.GoDownToBeach);

        TalkWithCastleman = new Schedule (this, Schedule.priorityEnum.DoNow);
        TalkWithCastleman.Add(new TimeTask(3000, new WaitTillPlayerCloseState(this, ref player)));
        Task setFlag = (new TimeTask(2f, new IdleState(this)));
        setFlag.AddFlagToSet(FlagStrings.StartTalkingToLighthouse);
        TalkWithCastleman.Add(setFlag);
        TalkWithCastleman.AddFlagGroup("TalkWithCastleman");

        GaveApple = new Schedule(this, Schedule.priorityEnum.High);
        GaveApple.Add(new TimeTask(10f, new AbstractAnimationState(this, "Play With Sword")));
        GaveApple.Add(SetFlagToBeach);
        //GaveApple.Add(new TimeTask(500f, new IdleState(this)));

        GaveNothingSchedule = new Schedule(this, Schedule.priorityEnum.High);
        GaveNothingSchedule.Add(new TimeTask(750f, new IdleState(this)));
        GaveNothingSchedule.Add(SetFlagToBeach);

        WalkToBeach = new Schedule(this, Schedule.priorityEnum.High);
        WalkToBeach.Add(new Task(new MoveThenMarkDoneState(this, MapLocations.MiddleOfBeachYoung)));
        Task setAtBeachFlag = new TimeTask(0f, new IdleState(this));
        setAtBeachFlag.AddFlagToSet(FlagStrings.LighthouseAtBeach);
        WalkToBeach.Add(setAtBeachFlag);

        LighthouseGoingToBeach = new NPCConvoSchedule(this, NPCManager.instance.getNPC(StringsNPC.FarmerMotherYoung),
            new LighthouseToFarmerMother(),Schedule.priorityEnum.DoConvo, true);
        LighthouseGoingToBeach.SetCanNotInteractWithPlayer();
    }
Beispiel #5
0
    protected override void SetUpSchedules()
    {
        CastleManFollowSchedule = new Schedule(this, Schedule.priorityEnum.Medium);
        CastleManFollowSchedule.Add(new TimeTask(0f, new IdleState(this)));
        CastleManFollowSchedule.Add(new Task(new FollowObjectState(this, player.gameObject)));

        CastleManFollowScheduleVTwo = new Schedule(this, Schedule.priorityEnum.High);
        CastleManFollowScheduleVTwo.Add(new TimeTask(0f, new IdleState(this)));
        CastleManFollowScheduleVTwo.Add(new TimeTask(0f, new FollowObjectState(this, player.gameObject)));
        Task TimerRanOut = new TimeTask(0f, new IdleState(this));
        TimerRanOut.AddFlagToSet(FlagStrings.TimerForGoingToBeach);
        CastleManFollowScheduleVTwo.Add(TimerRanOut);

        CastlemanWalkToBeachSchedule = new Schedule(this, Schedule.priorityEnum.DoNow);
        CastlemanWalkToBeachSchedule.Add(new TimeTask(1f, new IdleState(this)));
        CastlemanWalkToBeachSchedule.Add(new Task(new MoveThenMarkDoneState(this, new Vector3(52f, -6f, 0.95f))));
        Task setAtBeachFlag = new TimeTask(0f, new IdleState(this));
        setAtBeachFlag.AddFlagToSet(FlagStrings.CastleManAtBeach);
        CastlemanWalkToBeachSchedule.Add(setAtBeachFlag);
        CastlemanWalkToBeachSchedule.Add(new TimeTask(10000f, new IdleState(this)));

        #region Friends
        CastleManTalksFirstFriends = new Schedule(this, Schedule.priorityEnum.DoNow);
        Task setFlagFriendsFirstConvo = (new TimeTask(2f, new IdleState(this)));
        setFlagFriendsFirstConvo.AddFlagToSet(FlagStrings.FinishedInitialConversationWithCSONFriend);
        CastleManTalksFirstFriends.Add(setFlagFriendsFirstConvo);

        SetFinishedTalkingFlagForSecondConvoFriends = new Schedule(this, Schedule.priorityEnum.DoNow);
        Task setFlagFriendsSecondConvo = (new TimeTask(2f, new IdleState(this)));
        setFlagFriendsSecondConvo.AddFlagToSet(FlagStrings.FinishedSecondConversationWithCSONFriend);
        SetFinishedTalkingFlagForSecondConvoFriends.Add(setFlagFriendsSecondConvo);

        SetFinishedTalkingFlagForThirdConvoFriends = new Schedule(this, Schedule.priorityEnum.DoNow);
        Task setFlagFriendsThirdConvo = (new TimeTask(2f, new IdleState(this)));
        setFlagFriendsThirdConvo.AddFlagToSet(FlagStrings.FinishedThirdConvoWithCSONFriend);
        SetFinishedTalkingFlagForThirdConvoFriends.Add(setFlagFriendsThirdConvo);
        # endregion
        #region NotFriends
        CastleManTalksFirstNOTFriends = new Schedule(this, Schedule.priorityEnum.DoNow);
        Task setFlagNOTFriendsFirstConvo = (new TimeTask(2f, new IdleState(this)));
        setFlagNOTFriendsFirstConvo.AddFlagToSet(FlagStrings.FinishedInitialConversationWithCSONNOTFriend);
        CastleManTalksFirstNOTFriends.Add(setFlagNOTFriendsFirstConvo);

        SetFinishedTalkingFlagForSecondConvoNOTFriends = new Schedule(this, Schedule.priorityEnum.DoNow);
        Task setFlagNOTFriendsSecondConvo = (new TimeTask(2f, new IdleState(this)));
        setFlagNOTFriendsSecondConvo.AddFlagToSet(FlagStrings.FinishedSecondConversationWithCSONNOTFriend);
        SetFinishedTalkingFlagForSecondConvoNOTFriends.Add(setFlagNOTFriendsSecondConvo);

        SetFinishedTalkingFlagForThirdConvoNOTFriends = new Schedule(this, Schedule.priorityEnum.DoNow);
        Task setFlagNOTFriendsThirdConvo = (new TimeTask(2f, new IdleState(this)));
        setFlagNOTFriendsThirdConvo.AddFlagToSet(FlagStrings.FinishedThirdConvoWithCSONNOTFriend);
        SetFinishedTalkingFlagForThirdConvoNOTFriends.Add(setFlagNOTFriendsThirdConvo);
        #endregion
        #region Conversations
        CastleManMeetsLighthouse = new NPCConvoSchedule(this, NPCManager.instance.getNPC(StringsNPC.LighthouseGirlYoung),
            new CastleManToLighthouseFirstMeeting(),Schedule.priorityEnum.DoConvo);
        CastleManMeetsLighthouse.SetCanNotInteractWithPlayer();

        CastleManTalksToCSON = new NPCConvoSchedule(this, NPCManager.instance.getNPC(StringsNPC.CarpenterSonYoung),
            new CastleManToCarpenterFirstConvo(),Schedule.priorityEnum.DoConvo);
        CastleManTalksToCSON.SetCanNotInteractWithPlayer();
        CastleManTalksToCSONTwice = new NPCConvoSchedule(this, NPCManager.instance.getNPC(StringsNPC.CarpenterSonYoung),
            new CastleManToCarpenterSecondConvo(),Schedule.priorityEnum.DoConvo);
        CastleManTalksToCSONTwice.SetCanNotInteractWithPlayer();
        CastleManTalksToCSONThrice = new NPCConvoSchedule(this, NPCManager.instance.getNPC(StringsNPC.CarpenterSonYoung),
            new CastleManToCarpenterThirdConvo(),Schedule.priorityEnum.DoConvo);
        CastleManTalksToCSONThrice.SetCanNotInteractWithPlayer();

        CastleManTalksToLighthouseOnBeachFriends = new NPCConvoSchedule(this, NPCManager.instance.getNPC(StringsNPC.LighthouseGirlYoung),
            new CastleManToLightHouseFriends(),Schedule.priorityEnum.DoConvo);
        CastleManTalksToLighthouseOnBeachFriends.SetCanNotInteractWithPlayer();
        CastleManTalksToLighthouseOnBeachNOTFriends = new NPCConvoSchedule(this, NPCManager.instance.getNPC(StringsNPC.LighthouseGirlYoung),
            new CastlemanToLighthouseNotFriends(),Schedule.priorityEnum.DoConvo);
        CastleManTalksToLighthouseOnBeachNOTFriends.SetCanNotInteractWithPlayer();
        #endregion
    }
Beispiel #6
0
    protected override void SetUpSchedules()
    {
        ScheduleLoop newDefaultSched = new ScheduleLoop(this, Schedule.priorityEnum.Default);
        newDefaultSched.Add(new Task(new FishState(this)));
        this.AddSchedule(newDefaultSched);

        treasureHuntSched = new SeaCaptainTreasureHuntSchedule(this);

        talkToFortuneTellerFirstSched = new NPCConvoSchedule(this, NPCManager.instance.getNPC(StringsNPC.FortuneTellerMiddle), new MiddleSeaCaptainFortuneTellerFirstConvo(), Schedule.priorityEnum.Medium, true);
        talkToFortuneTellerSecondSched = new NPCConvoSchedule(this, NPCManager.instance.getNPC(StringsNPC.FortuneTellerMiddle), new MiddleSeaCaptainFortuneTellerSecondConvo(), Schedule.priorityEnum.Medium, true);
        TalktoCarpenterSon = new NPCConvoSchedule(this, NPCManager.instance.getNPC(StringsNPC.CarpenterSonMiddle), new MiddleSeaCaptainToCarpenterSon(), Schedule.priorityEnum.DoConvo, true);
        TalktoCarpenterSon.SetCanNotInteractWithPlayer();

        returnToDockSchedOne = new Schedule(this);
        returnToDockSchedOne.Add(new Task(new MoveThenMarkDoneState(this, startingPos)));

        returnToDockSchedTwo = new Schedule(this);
        returnToDockSchedTwo.Add(new Task(new MoveThenMarkDoneState(this, startingPos)));

        AfterTalkToCarpenterSon = new Schedule(this, Schedule.priorityEnum.High);
        Task FinishedTalking  = new TimeTask(0.05f, new IdleState(this));
        FinishedTalking.AddFlagToSet(FlagStrings.AfterConversationAboutBuildingShip);
        AfterTalkToCarpenterSon.Add (FinishedTalking);
    }
Beispiel #7
0
    protected override void SetUpSchedules()
    {
        greetSiblingOldSchedule = (new CarpenterSonOldGreetSibllingSchedule(this));
        goToBeachSchedule = (new CarpenterSonOldToBeachScript(this));
        talkWhileFishingSchedule = new Schedule(this, Schedule.priorityEnum.DoNow);
        talkWhileFishingSchedule.Add(new TimeTask(240f ,new WaitTillPlayerCloseState(this, ref this.player, 3f))); //
        Task a = new TimeTask(.05f, new IdleState(this));
        a.AddFlagToSet(FlagStrings.elderCarpenterSonChat);
        talkWhileFishingSchedule.Add(a);
        talkWhileFishingSchedule.Add(new Task (new IdleState(this)));

        fishingSchedule = new Schedule(this, Schedule.priorityEnum.DoNow);
        fishingSchedule.Add(new TimeTask(240f ,new WaitTillPlayerCloseState(this, ref this.player, 3f))); //
        //fishingSchedule.Add(new Task(new AbstractAnimationState(this, currentWalkPose)));
        fishingSchedule.Add(new TimeTask(20f, new IdleState(this)));  //-3.5
        Task b = new Task(new MoveThenDoState(this, new Vector3(74f, -3.5f + (LevelManager.levelYOffSetFromCenter*2), -.5f),new MarkTaskDone(this)));
        b.AddFlagToSet(FlagStrings.elderCarpenterFishingTime);
        fishingSchedule.Add(b);
        fishingSchedule.Add(new Task(new AbstractAnimationState(this, currentFishingPose)));
        fishingSchedule.Add(new Task (new IdleState(this)));

        //talkWhileFishingSchedule
    }
Beispiel #8
0
    protected override void SetUpSchedules()
    {
        gaveAppleSchedule = new Schedule(this, Schedule.priorityEnum.DoNow);
        gaveAppleSchedule.Add(new TimeTask(10f, new IdleState(this)));
        gaveAppleSchedule.Add(new Task(new WaitTillPlayerCloseState(this, ref player)));
        Task SetMusicianConvoFlag = new TimeTask(45f, new IdleState(this));
        SetMusicianConvoFlag.AddFlagToSet(FlagStrings.MoveToMusician);
        gaveAppleSchedule.Add(SetMusicianConvoFlag);
        //gaveAppleSchedule.Add(new Task(new MoveThenDoState(this, new Vector3(4f, -1f, -.5f), new MarkTaskDone(this))));

        giveSeedsSchedule = new Schedule(this, Schedule.priorityEnum.DoNow);
        giveSeedsSchedule.Add (new TimeTask(1, new IdleState(this)));
        giveSeedsSchedule.Add(new Task(new MoveThenDoState(this, new Vector3(0f, -1f, -.5f), new MarkTaskDone(this))));

        moveMotherHappyState = new Schedule(this, Schedule.priorityEnum.DoNow);
        moveMotherHappyState.Add (new TimeTask(1.5f, new IdleState(this)));
        //BUG, MOM ALWAYS FLOATS TO PLATFORM BEFORE REACHING DESTINATION
        moveMotherHappyState.Add(new Task(new MoveThenDoState(this, new Vector3(-20f, -1.5f, -.5f), new MarkTaskDone(this))));

        postRaceSchedule = new Schedule(this, Schedule.priorityEnum.DoNow);
        postRaceSchedule.Add(new Task(new IdleState(this)));

        moveHomeSchedule = new Schedule(this, Schedule.priorityEnum.DoNow);
        moveHomeSchedule.Add(new TimeTask(.5f, new IdleState(this)));
        //moveHomeSchedule.Add(new Task(new MoveThenDoState(this, new Vector3(0, -1f,.3f), new MarkTaskDone(this))));
        moveHomeSchedule.Add(new Task(new MoveThenDoState(this, new Vector3(-.9f, -1f,.3f), new MarkTaskDone(this))));

        /*
        enterMadSchedule = new Schedule (this, Schedule.priorityEnum.DoNow);
        enterMadSchedule.Add(new Task(new MoveThenDoState(this, new Vector3(-2, -1f,.3f), new MarkTaskDone(this))));
        enterMadSchedule.Add (new TimeTask(10f, new IdleState(this)));
        Task setNotAngryFlag = (new Task(new MoveThenDoState(this, new Vector3 (0, .2f, .3f), new MarkTaskDone(this))));
        setNotAngryFlag.AddFlagToSet(FlagStrings.ExitMadState);
        enterMadSchedule.Add(setNotAngryFlag);
        enterMadSchedule.Add (new TimeTask(.5f, new IdleState(this)));
        */

        moveToMusicianSchedule = new Schedule(this, Schedule.priorityEnum.DoNow);
        moveToMusicianSchedule.Add(new TimeTask(2f, new IdleState(this)));
        //moveToMusicianSchedule.Add(new Task(new ShowOneOffChatAction(this, "Follow me. They live up here.")));
        Task setFlag = (new Task(new MoveThenDoState(this, new Vector3 (-2.9f, 7.6f, 1f), new MarkTaskDone(this))));
        setFlag.AddFlagToSet(FlagStrings.FinishMusicianConvo);
        moveToMusicianSchedule.Add(setFlag);
        moveToMusicianSchedule.Add(new TimeTask(45f, new IdleState(this)));
        moveToMusicianSchedule.Add(new Task(new MoveThenMarkDoneState(this, this.gameObject.transform.position)));
        //moveToMusicianSchedule.Add(new TimeTask(.5f, new IdleState(this)));

        // ADD EXIT MAD SCHEDULE
    }
Beispiel #9
0
    protected override void SetUpSchedules()
    {
        girlEnd = new Schedule(this, Schedule.priorityEnum.DoNow);
        Task girlEndChatOne = new TimeTask(.1f,new IdleState(this));
        girlEndChatOne.AddFlagToSet(FarmerFamilyFlagStrings.GirlPathEndOne);
        girlEnd.Add(girlEndChatOne);
        girlEnd.Add(new Task(new MoveThenDoState(this, new Vector3(startingPosition.x + 1, startingPosition.y, startingPosition.z), new MarkTaskDone(this))));
        girlEnd.Add(new TimeTask(8.3f, new IdleState(this)));

        Task girlEndChatTwo = new TimeTask(.1f,new IdleState(this));
        girlEndChatTwo.AddFlagToSet(FarmerFamilyFlagStrings.GirlPathEndTwo);
        girlEnd.Add(girlEndChatTwo);
        girlEnd.Add(new TimeTask(3.3f, new IdleState(this)));

        Task girlEndChatThree = new TimeTask(.1f,new IdleState(this));
        girlEndChatThree.AddFlagToSet(FarmerFamilyFlagStrings.GirlPathEndThree);
        girlEnd.Add(girlEndChatThree);
        girlEnd.Add(new TimeTask(8f, new IdleState(this)));

        Task girlEndChatFour = new TimeTask(.1f,new IdleState(this));
        girlEndChatFour.AddFlagToSet(FarmerFamilyFlagStrings.GirlPathEndFour);
        girlEnd.Add(girlEndChatFour);
        girlEnd.Add(new TimeTask(4.3f, new IdleState(this)));

        Task girlEndChatFive = new TimeTask(.1f,new IdleState(this));
        girlEndChatFive.AddFlagToSet(FarmerFamilyFlagStrings.GirlPathEndFive);
        girlEnd.Add(girlEndChatFive);
        girlEnd.Add(new TimeTask(5.1f, new IdleState(this)));

        Task girlEndChatSix = new TimeTask(.1f,new IdleState(this));
        girlEndChatSix.AddFlagToSet(FarmerFamilyFlagStrings.GirlPathEndSix);
        girlEnd.Add(girlEndChatSix);
        girlEnd.Add(new TimeTask(4.1f, new IdleState(this)));

        Task girlEndChatSeven = new TimeTask(.1f,new IdleState(this));
        girlEndChatSeven.AddFlagToSet(FarmerFamilyFlagStrings.GirlPathEndSeven);
        girlEnd.Add(girlEndChatSeven);
        girlEnd.Add(new TimeTask(23f, new IdleState(this)));

        Task girlEndChatEight = new TimeTask(.1f,new IdleState(this));
        girlEndChatEight.AddFlagToSet(FarmerFamilyFlagStrings.GirlPathEndEight);
        girlEnd.Add(girlEndChatEight);
        girlEnd.Add(new TimeTask(1f, new IdleState(this)));

        Task girlEndChatNine = new TimeTask(.1f,new IdleState(this));
        girlEndChatNine.AddFlagToSet(FarmerFamilyFlagStrings.GirlPathEndNine);
        girlEnd.Add(girlEndChatNine);
        girlEnd.Add(new TimeTask(4f, new IdleState(this)));

        Task girlEndChatTen = new TimeTask(.1f,new IdleState(this));
        girlEndChatTen.AddFlagToSet(FarmerFamilyFlagStrings.GirlPathEndTen);
        girlEnd.Add(girlEndChatTen);
        girlEnd.Add(new TimeTask(21f, new IdleState(this)));

        Task girlEndChatEleven = new TimeTask(.1f,new IdleState(this));
        girlEndChatEleven.AddFlagToSet(FarmerFamilyFlagStrings.GirlPathEndEleven);
        girlEnd.Add(girlEndChatEleven);
        girlEnd.Add(new TimeTask(1.2f, new IdleState(this)));

        Task girlEndChatTwelve = new TimeTask(.1f,new IdleState(this));
        girlEndChatTwelve.AddFlagToSet(FarmerFamilyFlagStrings.GirlPathEndTwelve);
        girlEnd.Add(girlEndChatTwelve);
        girlEnd.Add(new TimeTask(1.2f, new IdleState(this)));

        Task girlEndChatThirteen = new TimeTask(.1f,new IdleState(this));
        girlEndChatThirteen.AddFlagToSet(FarmerFamilyFlagStrings.GirlPathEndThirteen);
        girlEnd.Add(girlEndChatThirteen);
        girlEnd.Add(new TimeTask(4f, new IdleState(this)));
        girlEnd.Add(new Task(new MoveThenDoState(this, new Vector3(startingPosition.x - 1, startingPosition.y, startingPosition.z), new MarkTaskDone(this))));
        girlEnd.SetCanInteract(false);
    }
Beispiel #10
0
    protected override void SetUpSchedules()
    {
        float dateTime = 100;

        openningWaitingSchedule = new Schedule(this, Schedule.priorityEnum.DoNow);
        openningWaitingSchedule.Add(new TimeTask(200, new WaitTillPlayerCloseState(this, ref player)));
        Task postOpening = new TimeTask(.1f,new IdleState(this));
        postOpening.AddFlagToSet(FarmerFamilyFlagStrings.IntroConvoStart);
        openningWaitingSchedule.Add(postOpening);

        backToFarmSchedule = new Schedule(this, Schedule.priorityEnum.DoNow);
        backToFarmSchedule.Add(new TimeTask(6f, new IdleState(this)));
        backToFarmSchedule.Add(new Task(new MoveThenDoState(this, startingPosition, new MarkTaskDone(this))));

        ropeDownSchedule = new Schedule(this, Schedule.priorityEnum.High);
        ropeDownSchedule.Add(new TimeTask(30, new WaitTillPlayerGoneState(this, player)));
        Task setFlag = new Task( new MoveThenDoState(this, startingPosition, new MarkTaskDone(this)));
        setFlag.AddFlagToSet(FlagStrings.WaitingForDate);
        ropeDownSchedule.Add(setFlag);
        ropeDownSchedule.AddFlagGroup("a");

        turnAround = new Schedule(this, Schedule.priorityEnum.DoNow);
        turnAround.Add(new Task(new MoveThenDoState(this, new Vector3(MapLocations.MiddleOfBeachMiddle.x+.1f, MapLocations.MiddleOfBeachMiddle.y, MapLocations.MiddleOfBeachMiddle.z), new MarkTaskDone(this))));
        turnAround.AddFlagGroup("b");

        /*postOpenningSchedule = new NPCConvoSchedule(this, NPCManager.instance.getNPC(StringsNPC.FarmerMotherMiddle),
            new MiddleFarmerMotherToLighthouseGirl(), Schedule.priorityEnum.DoConvo);
        postOpenningSchedule.SetCanNotInteractWithPlayer();*/

        introConvo = new Schedule(this, Schedule.priorityEnum.DoNow);
        introConvo.Add(new Task (new MoveThenDoState(this, new Vector3(startingPosition.x-.01f, startingPosition.y, startingPosition.z), new MarkTaskDone(this))));
        Task introConvoChatOne = new TimeTask(.1f,new IdleState(this));
        introConvoChatOne.AddFlagToSet(FarmerFamilyFlagStrings.IntroConvoOne);
        introConvo.Add(introConvoChatOne);
        introConvo.Add(new TimeTask(4.3f, new IdleState(this)));

        Task introConvoChatTwo = new TimeTask(.1f,new IdleState(this));
        introConvoChatTwo.AddFlagToSet(FarmerFamilyFlagStrings.IntroConvoTwo);
        introConvo.Add(introConvoChatTwo);
        introConvo.Add(new TimeTask(5.3f, new IdleState(this)));

        Task introConvoChatThree = new TimeTask(.1f,new IdleState(this));
        introConvoChatThree.AddFlagToSet(FarmerFamilyFlagStrings.IntroConvoThree);
        introConvo.Add(introConvoChatThree);
        introConvo.Add(new TimeTask(4.3f, new IdleState(this)));

        Task introConvoChatFour = new TimeTask(.1f,new IdleState(this));
        introConvoChatFour.AddFlagToSet(FarmerFamilyFlagStrings.IntroConvoFour);
        introConvo.Add(introConvoChatFour);
        introConvo.Add(new TimeTask(6.3f, new IdleState(this)));

        Task introConvoChatFive = new TimeTask(.1f,new IdleState(this));
        introConvoChatFive.AddFlagToSet(FarmerFamilyFlagStrings.IntroConvoFive);
        introConvo.Add(introConvoChatFive);
        introConvo.Add(new TimeTask(2.3f, new IdleState(this)));

        Task introConvoChatSix = new TimeTask(.1f,new IdleState(this));
        introConvoChatSix.AddFlagToSet(FarmerFamilyFlagStrings.IntroConvoSix);
        introConvo.Add(introConvoChatSix);
        introConvo.Add(new TimeTask(5.3f, new IdleState(this)));

        Task introConvoChatSeven = new TimeTask(.1f,new IdleState(this));
        introConvoChatSeven.AddFlagToSet(FarmerFamilyFlagStrings.IntroConvoSeven);
        introConvo.Add(introConvoChatSeven);
        introConvo.Add(new TimeTask(2f, new IdleState(this)));
        introConvo.SetCanInteract(false);

        #region castleMarriage
        castleMarriage = new Schedule(this, Schedule.priorityEnum.DoNow);
        Task castleMarriageChatOne = new TimeTask(.1f,new IdleState(this));
        castleMarriageChatOne.AddFlagToSet(FarmerFamilyFlagStrings.GirlCastleMarriageOne);
        castleMarriage.Add(castleMarriageChatOne);
        castleMarriage.Add(new TimeTask(5f, new IdleState(this)));
        castleMarriage.Add(new Task(new MoveThenDoState(this, new Vector3(startingPosition.x - 1, startingPosition.y, startingPosition.z), new MarkTaskDone(this))));
        castleMarriage.Add(new TimeTask(5.3f, new IdleState(this)));

        Task castleMarriageChatTwo = new TimeTask(.1f,new IdleState(this));
        castleMarriageChatTwo.AddFlagToSet(FarmerFamilyFlagStrings.GirlCastleMarriageTwo);
        castleMarriage.Add(castleMarriageChatTwo);
        castleMarriage.Add(new TimeTask(7.3f, new IdleState(this)));

        Task castleMarriageChatThree = new TimeTask(.1f,new IdleState(this));
        castleMarriageChatThree.AddFlagToSet(FarmerFamilyFlagStrings.GirlCastleMarriageThree);
        castleMarriage.Add(castleMarriageChatThree);
        castleMarriage.Add(new TimeTask(2.3f, new IdleState(this)));

        Task castleMarriageChatFour = new TimeTask(.1f,new IdleState(this));
        castleMarriageChatFour.AddFlagToSet(FarmerFamilyFlagStrings.GirlCastleMarriageFour);
        castleMarriage.Add(castleMarriageChatFour);
        castleMarriage.Add(new TimeTask(5.3f, new IdleState(this)));

        Task castleMarriageChatFive = new TimeTask(.1f,new IdleState(this));
        castleMarriageChatFive.AddFlagToSet(FarmerFamilyFlagStrings.GirlCastleMarriageFive);
        castleMarriage.Add(castleMarriageChatFive);
        castleMarriage.Add(new TimeTask(3.3f, new IdleState(this)));

        Task castleMarriageChatSix = new TimeTask(.1f,new IdleState(this));
        castleMarriageChatSix.AddFlagToSet(FarmerFamilyFlagStrings.GirlCastleMarriageSix);
        castleMarriage.Add(castleMarriageChatSix);
        castleMarriage.Add(new TimeTask(6.3f, new IdleState(this)));

        Task castleMarriageChatSeven = new TimeTask(.1f,new IdleState(this));
        castleMarriageChatSeven.AddFlagToSet(FarmerFamilyFlagStrings.GirlCastleMarriageSeven);
        castleMarriage.Add(castleMarriageChatSeven);
        castleMarriage.Add(new TimeTask(3.3f, new IdleState(this)));

        Task castleMarriageChatEight = new TimeTask(.1f,new IdleState(this));
        castleMarriageChatEight.AddFlagToSet(FarmerFamilyFlagStrings.GirlCastleMarriageEight);
        castleMarriage.Add(castleMarriageChatEight);
        castleMarriage.Add(new TimeTask(2f, new IdleState(this)));
        castleMarriage.Add(new Task(new MoveThenDoState(this, new Vector3(startingPosition.x + 2, startingPosition.y, startingPosition.z), new MarkTaskDone(this))));
        castleMarriage.SetCanInteract(false);
        #endregion

        girlEnd = new Schedule(this, Schedule.priorityEnum.DoNow);
        girlEnd.Add(new TimeTask(88.5f, new IdleState(this)));
        girlEnd.SetCanInteract(false);
    }
Beispiel #11
0
    //Schedule IdleSchedule;
    protected override void SetUpSchedules()
    {
        startingPosition = transform.position;
        startingPosition.y += LevelManager.levelYOffSetFromCenter;
        #region PathOne
        //Schedule for the Default path
        moveToWindmill = new Schedule(this, Schedule.priorityEnum.Low);
        moveToWindmill.Add (new Task(new MoveThenMarkDoneState(this, MapLocations.WindmillMiddle, "Somber Walk", 2f)));
        moveToWindmill.Add (new TimeTask(100f, new AbstractAnimationState(this, "Hammer", false, false)));
        moveToWindmill.Add (new Task(new MoveThenMarkDoneState(this, startingPosition)));
        #endregion

        #region FishingPath
        TeleportToStartConvo =  new Schedule (this, Schedule.priorityEnum.DoNow);
        TeleportToStartConvo.Add(new TimeTask(300f, new WaitTillPlayerCloseState(this, ref player)));
        //TeleportToStartConvo.Add(new Task (new MoveThenMarkDoneState(this, this.gameObject.transform.position)));
        Task StartFishingStuff = new TimeTask(0f, new IdleState(this));
        StartFishingStuff.AddFlagToSet(FlagStrings.FishingConversation);
        TeleportToStartConvo.Add(StartFishingStuff);

        MoveToPierToFish = new Schedule(this, Schedule.priorityEnum.DoNow);
        MoveToPierToFish.Add(new Task(new MoveThenMarkDoneState(this, MapLocations.BaseOfPierMiddle)));
        MoveToPierToFish.Add(new TimeTask(100f, new AbstractAnimationState(this, "Fishing", true, true)));
        Task SetOffConversationWithSeaCaptain = new TimeTask(0f, new IdleState(this));
        SetOffConversationWithSeaCaptain.AddFlagToSet(FlagStrings.StartConversationWithSeaCaptainAboutBuildingShip);
        MoveToPierToFish.Add(SetOffConversationWithSeaCaptain);

        AfterSeaCaptainTalk = new Schedule (this, Schedule.priorityEnum.DoNow);
        AfterSeaCaptainTalk.Add(new Task(new MoveThenMarkDoneState(this, MapLocations.MiddleOfBeachMiddle)));
        Task SetOffAfterSeaCaptain = new TimeTask(100f, new AbstractAnimationState(this, "Whittle"));
        SetOffAfterSeaCaptain.AddFlagToSet(FlagStrings.StartProudOfSonConversation);
        Task CarpenterSonTransitionToFisherman = new Task(new IdleState(this));
        CarpenterSonTransitionToFisherman.AddFlagToSet(FlagStrings.carpenterSonBecomesFisherman);
        AfterSeaCaptainTalk.Add(SetOffAfterSeaCaptain);

        EndState = new Schedule(this, Schedule.priorityEnum.High);
        EndState.Add(new TimeTask(10000f, new IdleState(this)));
        #endregion

        #region CarpentryPath
        StartCarpentry =  new Schedule (this, Schedule.priorityEnum.High);
        StartCarpentry.Add(new TimeTask(300f, new WaitTillPlayerCloseState(this, ref player)));
        //TeleportToStartConvo.Add(new Task (new MoveThenMarkDoneState(this, this.gameObject.transform.position)));
        Task StartCarpentryStuff = new TimeTask(0f, new IdleState(this));
        StartCarpentryStuff.AddFlagToSet(FlagStrings.IntroConvoCarpentry);
        StartCarpentry.Add(StartCarpentryStuff);

        DoNothingSchedule =  new Schedule(this, Schedule.priorityEnum.High);
        DoNothingSchedule.Add(new TimeTask(10000f, new IdleState(this)));

        WhittleStuff = new Schedule(this, Schedule.priorityEnum.High);
        TimeTask WhittlingAHarp = new TimeTask(30f, new AbstractAnimationState(this, "Whittle"));
        WhittlingAHarp.AddFlagToSet(FlagStrings.BuiltRockingChairTalk);
        WhittleStuff.Add(WhittlingAHarp);
        #endregion
        //Schedule for something
        stormOffSchedule = new Schedule(this,Schedule.priorityEnum.DoNow);
        stormOffSchedule.Add(new Task(new MoveThenMarkDoneState(this, MapLocations.BaseOfPierMiddle)));
        stormOffSchedule.Add(new TimeTask(2.0f, new IdleState(this))); //Will replace with working on windmill
        stormOffSchedule.Add(new Task(new MoveThenMarkDoneState(this, MapLocations.BaseOfPierMiddle)));

        AfterConversationCarpentery = new Schedule(this, Schedule.priorityEnum.High);
        AfterConversationCarpentery.Add(new TimeTask(10000f, new IdleState(this)));
        #region NPCConvoSchedules
        #endregion

        #region carpenterDate
        moveBack = new Schedule(this, Schedule.priorityEnum.High);
        moveBack.Add(new Task(new MoveThenDoState(this, startingPosition, new MarkTaskDone(this))));

        moveToBeach = new Schedule(this, Schedule.priorityEnum.DoNow);
        moveToBeach.Add(new Task(new MoveThenDoState(this, new Vector3(MapLocations.MiddleOfBeachMiddle.x+1.5f, MapLocations.MiddleOfBeachMiddle.y, MapLocations.MiddleOfBeachMiddle.z), new MarkTaskDone(this))));
        Task reachedBeach = new TimeTask(.1f,new IdleState(this));
        reachedBeach.AddFlagToSet(FarmerFamilyFlagStrings.GirlCarpenterDateOne);
        moveToBeach.Add(reachedBeach);
        moveToBeach.Add(new TimeTask(5.3f, new IdleState(this)));

        Task reachedBeachTwo = new TimeTask(.1f,new IdleState(this));
        reachedBeachTwo.AddFlagToSet(FarmerFamilyFlagStrings.GirlCarpenterDateTwo);
        moveToBeach.Add(reachedBeachTwo);
        moveToBeach.Add(new TimeTask(7.3f, new IdleState(this)));

        Task reachedBeachThree = new TimeTask(.1f,new IdleState(this));
        reachedBeachThree.AddFlagToSet(FarmerFamilyFlagStrings.GirlCarpenterDateThree);
        moveToBeach.Add(reachedBeachThree);
        moveToBeach.Add(new TimeTask(3.3f, new IdleState(this)));

        Task reachedBeachFour = new TimeTask(.1f,new IdleState(this));
        reachedBeachFour.AddFlagToSet(FarmerFamilyFlagStrings.GirlCarpenterDateFour);
        moveToBeach.Add(reachedBeachFour);
        moveToBeach.Add(new TimeTask(6.3f, new IdleState(this)));

        Task reachedBeachFive = new TimeTask(.1f,new IdleState(this));
        reachedBeachFive.AddFlagToSet(FarmerFamilyFlagStrings.GirlCarpenterDateFive);
        moveToBeach.Add(reachedBeachFive);
        moveToBeach.Add(new TimeTask(2.3f, new IdleState(this)));

        Task reachedBeachSix = new TimeTask(.1f,new IdleState(this));
        reachedBeachSix.AddFlagToSet(FarmerFamilyFlagStrings.GirlCarpenterDateSix);
        moveToBeach.Add(reachedBeachSix);
        moveToBeach.Add(new TimeTask(6f, new IdleState(this)));

        Task reachedBeachEnd = new TimeTask(.1f,new IdleState(this));
        reachedBeachEnd.AddFlagToSet(FlagStrings.EndOfDate);
        moveToBeach.Add(reachedBeachEnd);
        moveToBeach.Add(new TimeTask(3f, new IdleState(this)));
        moveToBeach.SetCanInteract(false);
        #endregion
    }
Beispiel #12
0
    protected override void SetUpSchedules()
    {
        Vector3 startingPosition = transform.position;
        startingPosition.y += LevelManager.levelYOffSetFromCenter;

        openningWaitingSchedule = new Schedule(this, Schedule.priorityEnum.Low);
        openningWaitingSchedule.Add(new TimeTask(5, new WaitTillPlayerCloseState(this, ref player)));
        Task nullFlag =  new TimeTask(0f, new IdleState(this));
        nullFlag.AddFlagToSet(FlagStrings.CarpenterAndCarpenterSonIndependantConversation);
        openningWaitingSchedule.Add(nullFlag);
        openningWaitingSchedule.AddFlagGroup("DefaultPath");

        angryAtSonBeingIndependent = new NPCConvoSchedule(this, NPCManager.instance.getNPC(StringsNPC.CarpenterSonMiddle), new MiddleCarpenterToSonDefaultScriptedConvo(), Schedule.priorityEnum.Medium); // CHANGE THIS CONVERSATION TO THE ONE WE WANT TO USE!
        angryAtSonBeingIndependent.SetCanNotInteractWithPlayer();
        //this.AddSchedule(openningWaitingSchedule);

        afterAngryAtSonIndependent = new Schedule(this, Schedule.priorityEnum.Low);
        Task SetMoveToWindmillFlag = new TimeTask(0f, new IdleState(this));
        SetMoveToWindmillFlag.AddFlagToSet(FlagStrings.carpenterSonTalkWithFatherMorning);
        afterAngryAtSonIndependent.Add(SetMoveToWindmillFlag);

        #region Fishing
        angryAtSonFishing =  new NPCConvoSchedule(this, NPCManager.instance.getNPC(StringsNPC.CarpenterSonMiddle), new MiddleCarpenterToSonFishingScriptedConvo(), Schedule.priorityEnum.DoNow); // CHANGE THIS CONVERSATION TO THE ONE WE WANT TO USE!
        angryAtSonFishing.SetCanNotInteractWithPlayer();

        AfterAngryAtSonFishing = new Schedule(this, Schedule.priorityEnum.High);
        Task TriggerAfterFishingConvo =  new TimeTask(0f, new IdleState(this));
        TriggerAfterFishingConvo.AddFlagToSet(FlagStrings.CarpenterSonMovesToTheBeach);
        AfterAngryAtSonFishing.Add(TriggerAfterFishingConvo);

        MoveToCliffSide = new Schedule(this, Schedule.priorityEnum.High);
        MoveToCliffSide.Add(new Task(new MoveThenMarkDoneState(this, MapLocations.BeachCliffMiddle)));

        AcceptFishing = new NPCConvoSchedule(this, NPCManager.instance.getNPC(StringsNPC.CarpenterSonMiddle), new MiddleCarpenterToCarpenterSonAcceptingFishing(), Schedule.priorityEnum.DoNow); // CHANGE THIS CONVERSATION TO THE ONE WE WANT TO USE!
        AcceptFishing.SetCanNotInteractWithPlayer();

        AfterAcceptFishing = new Schedule(this, Schedule.priorityEnum.High);
        Task flagTask = new TimeTask(0f, new IdleState(this));
        flagTask.AddFlagToSet(FlagStrings.AfterProudOfSonConversation);
        AfterAcceptFishing.Add(flagTask);
        AfterAcceptFishing.Add(new Task (new MoveThenMarkDoneState(this, MapLocations.BaseOfPierMiddle)));
        AfterAcceptFishing.Add(new TimeTask(10000f, new AbstractAnimationState(this, "Fishing")));
        #endregion
        #region Carpentry
        happyAtSonForBeingCarpenter = new NPCConvoSchedule(this, NPCManager.instance.getNPC(StringsNPC.CarpenterSonMiddle),
            new MiddleCarpenterToSonCarpentryScriptedConvo(), Schedule.priorityEnum.DoNow);
        happyAtSonForBeingCarpenter.SetCanNotInteractWithPlayer();

        WorkOnWindmill = new Schedule(this, Schedule.priorityEnum.High);
        WorkOnWindmill.Add(new Task(new MoveThenMarkDoneState(this, MapLocations.WindmillMiddle)));
        WorkOnWindmill.Add(new TimeTask(250f, new IdleState(this)));
        WorkOnWindmill.Add(new Task(new MoveThenMarkDoneState(this, startingPosition)));
        Task setCarpentryFlag = new TimeTask(0f, new IdleState(this));
        setCarpentryFlag.AddFlagToSet(FlagStrings.CarpenterReturnedHome);
        WorkOnWindmill.Add(setCarpentryFlag);

        ConversationAboutRockingChair = new NPCConvoSchedule(this, NPCManager.instance.getNPC(StringsNPC.CarpenterSonMiddle),
            new GiveRockingChairScript(), Schedule.priorityEnum.DoNow);
        ConversationAboutRockingChair.SetCanNotInteractWithPlayer();

        ConversationAboutNotDoingAnything = new NPCConvoSchedule(this, NPCManager.instance.getNPC(StringsNPC.CarpenterSonMiddle),
            new GiveNothingScript(), Schedule.priorityEnum.DoNow);
        ConversationAboutNotDoingAnything.SetCanNotInteractWithPlayer();

        AfterConversation = new Schedule(this, Schedule.priorityEnum.High);
        AfterConversation.Add(new TimeTask(10000f, new AbstractAnimationState(this, "Whittle")));
        #endregion
        //CONVERSATION SCHEDULE BUG!!!! PLEASE FIX
        //CONVERSATION SCHEDULE BUG!!!! PLEASE FIX
    }