Exemplo n.º 1
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);
    }
Exemplo n.º 2
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();
    }
Exemplo n.º 3
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);
    }
Exemplo n.º 4
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
    }