Mercurial > molko
annotate libmlk-adventure/adventure/item/potion.c @ 301:f04b4ee04db3
make: switch to GNU make
author | David Demelier <markand@malikania.fr> |
---|---|
date | Wed, 23 Jun 2021 22:41:34 +0200 |
parents | 9948e288925b |
children | d01e83210ca2 |
rev | line source |
---|---|
286
3991779aaba9
adventure: initial test of spawn
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
1 /* |
3991779aaba9
adventure: initial test of spawn
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
2 * potion.h -- give some heal points |
3991779aaba9
adventure: initial test of spawn
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
3 * |
3991779aaba9
adventure: initial test of spawn
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
4 * Copyright (c) 2020 David Demelier <markand@malikania.fr> |
3991779aaba9
adventure: initial test of spawn
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
5 * |
3991779aaba9
adventure: initial test of spawn
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
6 * Permission to use, copy, modify, and/or distribute this software for any |
3991779aaba9
adventure: initial test of spawn
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
7 * purpose with or without fee is hereby granted, provided that the above |
3991779aaba9
adventure: initial test of spawn
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
8 * copyright notice and this permission notice appear in all copies. |
3991779aaba9
adventure: initial test of spawn
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
9 * |
3991779aaba9
adventure: initial test of spawn
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
3991779aaba9
adventure: initial test of spawn
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF |
3991779aaba9
adventure: initial test of spawn
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR |
3991779aaba9
adventure: initial test of spawn
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES |
3991779aaba9
adventure: initial test of spawn
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN |
3991779aaba9
adventure: initial test of spawn
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
3991779aaba9
adventure: initial test of spawn
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
3991779aaba9
adventure: initial test of spawn
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
17 */ |
3991779aaba9
adventure: initial test of spawn
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
18 |
3991779aaba9
adventure: initial test of spawn
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
19 #include <math.h> |
3991779aaba9
adventure: initial test of spawn
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
20 |
3991779aaba9
adventure: initial test of spawn
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
21 #include <core/sound.h> |
3991779aaba9
adventure: initial test of spawn
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
22 |
290
9948e288925b
rpg: add support for items in battle
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
23 #include <rpg/battle.h> |
286
3991779aaba9
adventure: initial test of spawn
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
24 #include <rpg/character.h> |
3991779aaba9
adventure: initial test of spawn
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
25 #include <rpg/item.h> |
3991779aaba9
adventure: initial test of spawn
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
26 |
3991779aaba9
adventure: initial test of spawn
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
27 #include <adventure/adventure_p.h> |
3991779aaba9
adventure: initial test of spawn
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
28 #include <adventure/assets.h> |
3991779aaba9
adventure: initial test of spawn
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
29 |
3991779aaba9
adventure: initial test of spawn
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
30 #include "potion.h" |
3991779aaba9
adventure: initial test of spawn
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
31 |
3991779aaba9
adventure: initial test of spawn
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
32 static void |
290
9948e288925b
rpg: add support for items in battle
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
33 heal(struct character *ch) |
9948e288925b
rpg: add support for items in battle
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
34 { |
9948e288925b
rpg: add support for items in battle
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
35 ch->hp = fmin(ch->hp + 50, ch->hpmax); |
9948e288925b
rpg: add support for items in battle
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
36 sound_play(&assets_sounds[ASSETS_SOUND_ITEM_POTION], -1, 0); |
9948e288925b
rpg: add support for items in battle
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
37 } |
9948e288925b
rpg: add support for items in battle
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
38 |
9948e288925b
rpg: add support for items in battle
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
39 static void |
9948e288925b
rpg: add support for items in battle
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
40 exec_menu(const struct item *item, struct character *ch) |
286
3991779aaba9
adventure: initial test of spawn
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
41 { |
290
9948e288925b
rpg: add support for items in battle
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
42 (void)item; |
9948e288925b
rpg: add support for items in battle
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
43 |
9948e288925b
rpg: add support for items in battle
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
44 heal(ch); |
9948e288925b
rpg: add support for items in battle
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
45 } |
9948e288925b
rpg: add support for items in battle
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
46 |
9948e288925b
rpg: add support for items in battle
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
47 static void |
9948e288925b
rpg: add support for items in battle
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
48 exec_battle(const struct item *item, struct battle *bt, struct character *src, struct character *tgt) |
9948e288925b
rpg: add support for items in battle
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
49 { |
9948e288925b
rpg: add support for items in battle
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
50 (void)item; |
9948e288925b
rpg: add support for items in battle
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
51 |
9948e288925b
rpg: add support for items in battle
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
52 heal(tgt); |
9948e288925b
rpg: add support for items in battle
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
53 battle_indicator_hp(bt, tgt, 50); |
286
3991779aaba9
adventure: initial test of spawn
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
54 } |
3991779aaba9
adventure: initial test of spawn
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
55 |
3991779aaba9
adventure: initial test of spawn
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
56 const struct item item_potion = { |
3991779aaba9
adventure: initial test of spawn
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
57 .name = N_("Potion"), |
3991779aaba9
adventure: initial test of spawn
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
58 .description = N_("Recover 50 HP."), |
290
9948e288925b
rpg: add support for items in battle
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
59 .exec_menu = exec_menu, |
9948e288925b
rpg: add support for items in battle
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
60 .exec_battle = exec_battle |
286
3991779aaba9
adventure: initial test of spawn
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
61 }; |