summaryrefslogtreecommitdiff
path: root/data/sample-grammars/diablo-ii/diabloii.gram
blob: 379bea4cbeb1765436df6e653589ad81ffe41151 (plain)
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
[base-treasures] <^4> [base-treasure]
	<^2> [quote-treasure] as well as [quote-treasure]
	<^2> [quote-treasure] or [quote-treasure]
	[quote-treasure] , and [quote-treasure] as well as [quote-treasure]
	[quote-treasure] , [quote-treasure] or [quote-treasure]

pragma initial-rule [base-treasures]

[quote-treasure] ( [base-treasure] )

pragma despace-rule [quote-treasure]

[base-treasure] <^3> a [item]
	[non-item]

[non-item] <^4> [money]
	nothing

[money] [diablo-amount] [money-type]

[diablo-amount] 2
	5
	10
	20
	50
	50
	100
	200
	500
	1000

# Try to advance with a two out of three chance, 10 attempts
pragma enable-binomial [diablo-amount] 2 3 10

pragma export-rule [diablo-amount]

[money-type] coins

pragma prefix-with [money-type] [metal-type]

[metal-type] copper
	silver
	gold
	platinum

pragma enable-descent [metal-type] 2

[item] <^4> [item-types]
	<^2> [item-types] [d2-suffix]
	<^2> [d2-prefix] [item-types]
	[d2-prefix] [item-types] [d2-suffix]

[item-types] <^2> [d2-item-type]
	[ds-items]
	# This is somewhat confusing, as it is referring to a exported rule named item, not the item defined above.
	#
	# This is less than optimal, and will get better once exports are referred to by name
	[^item]

[ds-items] [ds-gem]
	[ds-rune]
	[ds-armor]