summaryrefslogtreecommitdiff
path: root/npc/015-8-1/puzzle.txt
blob: 2cf669c67921d1ca080b6b7650608117499a7239 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
// TMW2 scripts.
// Author:
//    Jesusalva
// Description:
//    PUZZLES and TRAPS submodule - Sagratha's Cave Boss Room - 015-8-1

// Exit area
015-8-1,50,79,0	script	#Exit01581	NPC_HIDDEN,1,0,{
    end;
OnTouch:
    .@q=getq(HurnscaldQuest_Sagratha);
    // Cheater Detected
    if (!MAGIC_LVL || .@q < 5) {
        setq HurnscaldQuest_Sagratha, 0, 0, 0;
        sc_end SC_CASH_PLUSEXP;
        sc_end SC_OVERLAPEXPUP;
        sc_start SC_OVERLAPEXPUP, 300000, -20;
        warp "Save", 0, 0;
        end;
    }
    if (.@q == 5) {
        dispbottom l("You are NOT allowed to leave here!");
    } else {
        warp "015-8", 94, 21;
    }
    end;
}


015-8-1,0,0,0	script	#SaggyBossTrap01	NPC_TRAP,0,0,{
    end;
OnTouchNPC:
OnTouch:
    // instance_id()
    if (instance_id() >= 0)
        SteelTrap(rand2(10, 40), 5, any(0,1,1,2), instance_npcname(.name$));
    else
        SteelTrap(rand2(10, 40), 5, any(0,1,1,2));
    end;

OnTimer10000:
    stopnpctimer;
    setnpctimer 0;
    setnpcdisplay instance_npcname(.name$), NPC_TRAP;
    end;


OnInstanceInit:
    .@x=rand(20,80);
    .@y=rand(20,80);
    movenpc instance_npcname(.name$), .@x, .@y;
    // It's on a wall, let's remove it
    if (!checkcell(instance_mapname("015-8-1"), .@x, .@y, cell_chkpass)) {
        disablenpc instance_npcname(.name$);
    }
    end;

OnInit:
    disablenpc .name$;
    end;
}

// Create more traps. (They can be on walls so amount is random >.<)
015-8-1,0,0,0	duplicate(#SaggyBossTrap01)	#SaggyBossTrap02	NPC_TRAP,0,0
015-8-1,0,0,0	duplicate(#SaggyBossTrap01)	#SaggyBossTrap03	NPC_TRAP,0,0
015-8-1,0,0,0	duplicate(#SaggyBossTrap01)	#SaggyBossTrap04	NPC_TRAP,0,0
015-8-1,0,0,0	duplicate(#SaggyBossTrap01)	#SaggyBossTrap05	NPC_TRAP,0,0
015-8-1,0,0,0	duplicate(#SaggyBossTrap01)	#SaggyBossTrap06	NPC_TRAP,0,0
015-8-1,0,0,0	duplicate(#SaggyBossTrap01)	#SaggyBossTrap07	NPC_TRAP,0,0
015-8-1,0,0,0	duplicate(#SaggyBossTrap01)	#SaggyBossTrap08	NPC_TRAP,0,0
015-8-1,0,0,0	duplicate(#SaggyBossTrap01)	#SaggyBossTrap09	NPC_TRAP,0,0
015-8-1,0,0,0	duplicate(#SaggyBossTrap01)	#SaggyBossTrap10	NPC_TRAP,0,0
015-8-1,0,0,0	duplicate(#SaggyBossTrap01)	#SaggyBossTrap11	NPC_TRAP,0,0
015-8-1,0,0,0	duplicate(#SaggyBossTrap01)	#SaggyBossTrap12	NPC_TRAP,0,0
// twelve traps should be enough

// Transitional, dummy NPCs
015-8-1,25,34,0	script	#LockedDoor01581A	NPC_NO_SPRITE,0,0,{
    end;
OnTouch:
    npctalkonce l("This door is locked.");
    end;
}

015-8-1,26,68,0	duplicate(#LockedDoor01581A)	#LockedDoor01581B	NPC_NO_SPRITE,0,0
015-8-1,37,68,0	duplicate(#LockedDoor01581A)	#LockedDoor01581C	NPC_NO_SPRITE,0,0

015-8-1,53,31,0	script	#PaperNote01581A	NPC_NO_SPRITE,{
    npctalkonce any(l("You cannot decipher what's written in there."), l("It's written in Mananese, you cannot read."), l("It's full of Mouboo drawings."), l("This note is too old and difficult to read."), l("The only readable thing is an old stain of blood."), l("This note is not interesting, maybe the obelisk is more."));
    end;
OnInit:
    .distance=2;
    end;
}

015-8-1,56,31,0	duplicate(#PaperNote01581A)	#PaperNote01581B	NPC_NO_SPRITE
015-8-1,59,31,0	duplicate(#PaperNote01581A)	#PaperNote01581C	NPC_NO_SPRITE
015-8-1,62,31,0	duplicate(#PaperNote01581A)	#PaperNote01581D	NPC_NO_SPRITE
015-8-1,65,31,0	duplicate(#PaperNote01581A)	#PaperNote01581E	NPC_NO_SPRITE
015-8-1,68,31,0	duplicate(#PaperNote01581A)	#PaperNote01581F	NPC_NO_SPRITE
015-8-1,71,31,0	duplicate(#PaperNote01581A)	#PaperNote01581G	NPC_NO_SPRITE

015-8-1,42,51,0	script	#Sign01581A	NPC_NO_SPRITE,{
    npctalkonce l("It's a strange drawing of a Mouboo.");
    dispbottom l("Where is here? What was this place used for?!");
    end;
OnInit:
    .distance=2;
    end;
}