File: game_rpg.cfg

package info (click to toggle)
cube2-data 1.3-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye, forky, sid, trixie
  • size: 301,880 kB
  • sloc: xml: 37; makefile: 9; sh: 2
file content (240 lines) | stat: -rw-r--r-- 8,165 bytes parent folder | download | duplicates (7)
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
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
// rpg specific cfg stuff goes here -- see rpg.html for more clarity

// for the rpg, almost all gameplay is defined _per map_ as opposed to globally for the game
// but for now a lot of stuff goes here for testing

playasong = []

// these are the log curve settings for computing efficiency based on points. do not modify if you don't know what these do.

r_def_logscale_x = 10
r_def_logscale_y = 25

r_def_melee       $r_def_logscale_x $r_def_logscale_y
r_def_ranged      $r_def_logscale_x $r_def_logscale_y
r_def_magic       $r_def_logscale_x $r_def_logscale_y

r_def_hpregen     $r_def_logscale_x $r_def_logscale_y
r_def_manaregen   $r_def_logscale_x $r_def_logscale_y

r_def_maxhp       $r_def_logscale_x $r_def_logscale_y
r_def_maxmana     $r_def_logscale_x $r_def_logscale_y

r_def_attackspeed $r_def_logscale_x $r_def_logscale_y
r_def_movespeed   $r_def_logscale_x $r_def_logscale_y
r_def_jumpheight  $r_def_logscale_x $r_def_logscale_y
r_def_tradeskill  $r_def_logscale_x $r_def_logscale_y
r_def_feared      $r_def_logscale_x $r_def_logscale_y
r_def_stealth     $r_def_logscale_x $r_def_logscale_y
r_def_hostility   $r_def_logscale_x $r_def_logscale_y

r_def_stata       $r_def_logscale_x $r_def_logscale_y
r_def_statb       $r_def_logscale_x $r_def_logscale_y
r_def_statc       $r_def_logscale_x $r_def_logscale_y

//showcharacterboundingbox 1


// some useful functions...

newrpgspawn = [ newent spawn; spawnname $arg1; ]

r_inventory = [ r_spawn $arg1; r_contain 1; r_pop ]
r_loot      = [ r_spawn $arg1; r_contain 2; r_pop ]
r_fortrade  = [ r_spawn $arg1; r_contain 4; r_pop ]

r_sound = [ r_usesound (registersound $arg1) ]


// all the objects in the game:

// that's us
spawn_player = [
    r_inventory apple
    r_inventory power_gem
    r_inventory fist        // starting weapon
    r_inventory sword
    r_inventory fireball
    r_inventory iceball
    r_inventory healing
    r_inventory crossbow
    r_gold 10               // give us some starting money, woo
    r_ai 1                  // just so it is in the same group as the npcs for attacks etc
]

r_meleeweapon = [
    r_usetype 1
    r_damage $arg1
    r_attackrate $arg2
    r_maxrange $arg3
    r_maxangle $arg4
    r_action_use [ r_dodamage (r_eff_melee) ]
]

r_rangedweapon = [
    r_usetype 2
    r_damage $arg1
    r_attackrate $arg2
    r_maxrange $arg3
    r_useamount 10		// comes with arrows included
    r_action_use [ r_dodamage (r_eff_ranged) ]
    r_sound "free/tick"
]

r_spell = [
	r_usetype 3
	r_damage $arg1
    r_attackrate $arg2
    r_manacost $arg3
    r_maxrange $arg4
    r_effectparticle (at $arg5 0)
    r_effectcolor (at $arg5 1)
    r_effectsize (at $arg5 2)
    r_sound $arg6
    r_action_use $arg7
]

// weapons
spawn_fist   = [ r_meleeweapon 10  500 20 30; r_sound "free/punch1"; r_use ]           // this will be equipped when we start
spawn_sword  = [ r_meleeweapon 15  750 30 30; r_sound "free/tick" ]
spawn_hammer = [ r_meleeweapon  5  250 20 20; r_sound "free/tick"; r_model "tentus/hammer" ]
spawn_bomb   = [ r_meleeweapon 30 1000 90 90; r_sound "free/tick"; r_model "tentus/bombs" ]
spawn_spear  = [ r_meleeweapon 10 1000 60 60; r_sound "free/tick"; r_model "tentus/spear" ]

spawn_crossbow    = [ r_rangedweapon 5 1000 256 ]

r_dodamage = [
	damage = (r_get_damage)
	r_pop
	r_applydamage (div (* $damage $arg1) 100)
]

r_givehealth = [
	r_pop
	r_hp (+ (r_get_hp) $arg1)	// temp, needs to be capped
]

r_givemana = [
	r_pop
	r_mana (+ (r_get_mana) $arg1)	
]

// spells, can be used as weapons

spawn_fireball = [ r_spell  7  500 10 256 [0 0xFFC8C8 480] "awesund/flaunch" [ r_dodamage (r_eff_magic) ] ]
spawn_iceball  = [ r_spell 10  400 20 256 [1 0xFFFFFF 480] "awesund/flaunch" [ r_dodamage (r_eff_magic) ] ]
spawn_healing  = [ r_spell  0 1000 25   0 [] "free/itempick"   [ r_givehealth 20 ] ]

// single-use spells, activated in inventory, or in the gameworld:

spawn_healthpotion = [ r_useamount 1; r_action_use [ r_givehealth 20 ]; r_sound "free/itempick"; r_model "tentus/food-drink/winebottle" ] 
spawn_manapotion   = [ r_useamount 1; r_action_use [ r_givemana   20 ]; r_sound "free/itempick"; r_model "tentus/food-drink/winebottle" ] 


// defensive
spawn_green_shield = [ r_worth  500; r_hpregen 20; r_model "tentus/greenshield" ]
spawn_red_shield   = [ r_worth 1000; r_hpregen 50; r_model "tentus/redshield" ]

// food/drink
spawn_apple        = [ r_worth   10; r_model "tentus/food-drink/apple" ]
spawn_apple_slice  = [ r_worth    1; r_model "tentus/food-drink/appleslice" ]
spawn_carrot       = [ r_worth    1; r_model "carrot" ]
spawn_pear         = [ r_worth   15; r_model "tentus/food-drink/pear" ]
spawn_pie          = [ r_worth   20; r_model "tentus/food-drink/pie" ]
spawn_pie_slice    = [ r_worth    5; r_model "tentus/food-drink/pieslice" ]
spawn_mushroom     = [ r_worth    5; r_model "dcp/mushroom" ]
spawn_wolfmeat     = [ r_worth    4; r_model "tentus/food-drink/meat" ]
spawn_wine         = [ r_worth   30; r_model "tentus/food-drink/winebottle" ]

// valuables
spawn_power_gem    = [ r_worth  100; r_melee 100; r_model "checkpoint" ]
spawn_coin         = [ r_worth   10; r_model "rpg/objects/coin" ]
spawn_key          = [ r_worth   10; r_model "tentus/key" ]
spawn_loot         = [ r_worth  100; r_model "tentus/moneybag" ]

// misc
spawn_anvil        = [ r_worth   20; r_model "tentus/anvil" ]
spawn_books        = [ r_worth    5; r_model "tentus/books" ]
spawn_bowl         = [ r_worth    5; r_model "tentus/food-drink/bowl" ]
spawn_goblet       = [ r_worth   10; r_model "tentus/food-drink/goblet" ]
spawn_mug          = [ r_worth    5; r_model "tentus/food-drink/mug" ]
spawn_candle       = [ r_worth    2; r_model "dcp/candle" ]
spawn_cask         = [ r_worth   30; r_model "dcp/cask" ]
spawn_rope         = [ r_worth   10; r_model "dcp/rope" ]
spawn_sack         = [ r_worth   10; r_model "dcp/sack" ]
spawn_wolfskin     = [ r_worth   15 ]
spawn_vase         = [ r_worth   20; r_model "dcp/vase" ]

// stats
spawn_fountainofmana = [ r_manaregen 10000 ]

// npcs
spawn_mman = [
    r_friendly_creature "rpg/characters/mman"
    
    r_gold 1000               // rich bastard
    
    r_inventory red_shield    // he's going to be hard to kill
    
    r_inventory iceball       // better not aggrevate him
    r_inventory fountainofmana

    r_fortrade apple          // ooh the guy carries an apple. Maybe we can trade?
    r_fortrade apple
    
    r_action "hi" [ r_say "hey, how are you!" ]
    r_action "I'm hungry" [
		r_say "kill a wolf for me, and I will give you an apple"
		r_quest "I killed a wolf" [
			r_take wolfskin [
				r_say "thanks for the wolf's skin, here's your apple"
				r_give apple
			] [
				r_say "go kill a wolf first!"
			]
		]
	]
]

r_friendly_creature = [
    r_model $arg1
    r_ai 1
]

r_hostile_creature = [
    r_model $arg1
    r_ai 2
    r_meleeweapon $arg2 1000 $arg3 30   // this creature is itself a melee weapon
]

spawn_npcman  = [ r_friendly_creature "rpg/characters/npcman"; r_inventory sword ]
spawn_horse   = [ r_friendly_creature "rpg/characters/horse"  ]

spawn_dragon  = [ r_hostile_creature "rpg/characters/dragon"  80 100 ]
spawn_wolf    = [ r_hostile_creature "rpg/characters/wolf"    10 30; r_loot wolfskin; r_loot wolfmeat ]
spawn_rat     = [ r_hostile_creature "rpg/characters/rat"      2 25 ]
spawn_grizzly = [ r_hostile_creature "rpg/characters/grizzly" 20 40 ]

// temp: override main menu for rpg

bind I   "showplayergui 1; cleargui 1"
bind TAB "showplayergui 2; cleargui 1"
bind L   "showplayergui 3; cleargui 1"
bind ESCAPE [if (cleargui 1) [] [showgui main; showplayergui 0]]   

newgui main [
    guibutton "inventory (I)"       "showplayergui 1"        "chest"
    guibutton "player stats (TAB)"  "showplayergui 2"        "info"
    guibutton "quest log (L)"       "showplayergui 3"        "info"
    guibar
    guibutton "map k_rpg1"
    guibutton "map rpg_01"
    guibar
    guibutton "load fps map.."   "showgui maps"
    guibutton "editing.."        "showgui editing"
    guibutton "options.."        "showgui options"
    guibutton "about.."          "showgui about"
    guibar
    guibutton "quit"             "quit"                 "exit"
]