Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // room script file
- enum ClerkState {
- eStateBored,
- eStateGoingToDog,
- eStateTellingDogToShutUp,
- eStateReturningToDesk
- };
- ClerkState clerkstate = eStateBored;
- int dogbarking = -1;
- Overlay *shutup;
- function room_Load()
- {
- cClerk.FaceLocation(cClerk.x, cClerk.y - 10);
- cDog.ManualScaling = true;
- cDog.Scaling = 50;
- }
- function repeatedly_execute_always() {
- // handle dog's barking
- if (dogbarking != -1) {
- dogbarking--;
- if (dogbarking == 0) {
- cDog.SayBackground("BARK!");
- // first bark makes clerk walk over
- if (clerkstate == eStateBored) {
- clerkstate = eStateGoingToDog;
- cClerk.SayBackground("Goddamn dog!");
- cClerk.Walk(cDog.x - 5, cDog.y + 15);
- }
- // next bark two seconds from now
- dogbarking = 80;
- }
- }
- // clerk behavior
- // arrived at dog
- if (clerkstate == eStateGoingToDog && !cClerk.Moving) {
- clerkstate = eStateTellingDogToShutUp;
- cClerk.FaceCharacter(cDog, eNoBlock);
- shutup = cClerk.SayBackground("Shut up!");
- // dog stops barking
- dogbarking = -1;
- }
- // done telling dog to "Shut up"
- if (clerkstate == eStateTellingDogToShutUp && !shutup.Valid) {
- clerkstate = eStateReturningToDesk;
- cClerk.Walk(110, 225);
- }
- // arrived at desk
- if (clerkstate == eStateReturningToDesk && !cClerk.Moving) {
- cClerk.FaceLocation(cClerk.x, cClerk.y - 10, eNoBlock);
- clerkstate = eStateBored;
- }
- }
- void on_call(int p) {
- // talk to cClerk
- if (p == 1) {
- if (clerkstate == eStateBored) dClerk1.Start();
- else player.Say("She's busy.");
- }
- // talk to dog
- if (p == 2) {
- if (clerkstate != eStateBored) {
- player.SayBackground("Not now.");
- return;
- }
- // make dog bark, set stuff in motion
- player.Walk(cDog.x, cDog.y + 10, eBlock);
- player.FaceCharacter(cDog);
- player.Say("Hiya, doggie! Want to go for a walk?");
- // 20 frames till first bark
- dogbarking = 20;
- }
- }
- function oBook_Interact()
- {
- if (Region.GetAtRoomXY(player.x, player.y) != region[1]) {
- player.Say("I need to get closer.");
- return;
- }
- if (clerkstate == eStateBored || clerkstate == eStateReturningToDesk) {
- cClerk.SayBackground("Hey, you can't have that!");
- return;
- }
- player.SayBackground("YOINK");
- oBook.Visible = false;
- }
- function room_FirstLoad()
- {
- }
- function room_AfterFadeIn()
- {
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement