helapordo 1.4.12
Loading...
Searching...
No Matches
specials.h
Go to the documentation of this file.
1// jgabaut @ github.com/jgabaut
2// SPDX-License-Identifier: GPL-3.0-only
3/*
4 Copyright (C) 2022-2024 jgabaut
5
6 This program is free software: you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation, version 3 of the License.
9
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
14
15 You should have received a copy of the GNU General Public License
16 along with this program. If not, see <https://www.gnu.org/licenses/>.
17*/
18
19#ifndef SPECIALS_H
20#define SPECIALS_H
21#include "game_utils.h"
22
23#ifdef HELAPORDO_CURSES_BUILD
24#ifdef _WIN32
25#include <ncursesw/panel.h>
26#include <ncursesw/menu.h>
27#else
28#include <panel.h>
29#include <menu.h>
30#endif // _WIN32
31
32void knightSpecial_Slash(WINDOW * w, Fighter * f, Enemy * e, Boss * b, Path * p,
33 int roomIndex, int enemyIndex, int isBoss);
34void knightSpecial_Cover(WINDOW * w, Fighter * f, Enemy * e, Boss * b, Path * p,
35 int roomIndex, int enemyIndex, int isBoss);
36void knightSpecial_Armordrop(WINDOW * w, Fighter * f, Enemy * e, Boss * b,
37 Path * p, int roomIndex, int enemyIndex,
38 int isBoss);
39void knightSpecial_Berserk(WINDOW * w, Fighter * f, Enemy * e, Boss * b,
40 Path * p, int roomIndex, int enemyIndex, int isBoss);
41
42void archerSpecial_Headshot(WINDOW * w, Fighter * f, Enemy * e, Boss * b,
43 Path * p, int roomIndex, int enemyIndex,
44 int isBoss);
45void archerSpecial_Quivercheck(WINDOW * w, Fighter * f, Enemy * e, Boss * b,
46 Path * p, int roomIndex, int enemyIndex,
47 int isBoss);
48void archerSpecial_Poisonshot(WINDOW * w, Fighter * f, Enemy * e, Boss * b,
49 Path * p, int roomIndex, int enemyIndex,
50 int isBoss);
51void archerSpecial_Fireshot(WINDOW * w, Fighter * f, Enemy * e, Boss * b,
52 Path * p, int roomIndex, int enemyIndex,
53 int isBoss);
54
55void mageSpecial_Fatewarp(WINDOW * w, Fighter * f, Enemy * e, Boss * b,
56 Path * p, int roomIndex, int enemyIndex, int isBoss);
57void mageSpecial_Powerup(WINDOW * w, Fighter * f, Enemy * e, Boss * b, Path * p,
58 int roomIndex, int enemyIndex, int isBoss);
59void mageSpecial_Spellstrike(WINDOW * w, Fighter * f, Enemy * e, Boss * b,
60 Path * p, int roomIndex, int enemyIndex,
61 int isBoss);
62void mageSpecial_Flamering(WINDOW * w, Fighter * f, Enemy * e, Boss * b,
63 Path * p, int roomIndex, int enemyIndex, int isBoss);
64
65void assassinSpecial_Grimdagger(WINDOW * w, Fighter * f, Enemy * e, Boss * b,
66 Path * p, int roomIndex, int enemyIndex,
67 int isBoss);
68void assassinSpecial_Leechknife(WINDOW * w, Fighter * f, Enemy * e, Boss * b,
69 Path * p, int roomIndex, int enemyIndex,
70 int isBoss);
71void assassinSpecial_Disguise(WINDOW * w, Fighter * f, Enemy * e, Boss * b,
72 Path * p, int roomIndex, int enemyIndex,
73 int isBoss);
74void assassinSpecial_Venomblade(WINDOW * w, Fighter * f, Enemy * e, Boss * b,
75 Path * p, int roomIndex, int enemyIndex,
76 int isBoss);
77void setSpecials(Fighter * f, Koliseo * kls);
78#else
79#ifndef HELAPORDO_RAYLIB_BUILD
80#error "HELAPORDO_CURSES_BUILD and HELAPORDO_RAYLIB_BUILD are both undefined.\n"
81#else
82void knightSpecial_Slash(Rectangle * win, Fighter * f, Enemy * e, Boss * b, Path * p,
83 int roomIndex, int enemyIndex, int isBoss);
84void knightSpecial_Cover(Rectangle * win, Fighter * f, Enemy * e, Boss * b, Path * p,
85 int roomIndex, int enemyIndex, int isBoss);
86void knightSpecial_Armordrop(Rectangle * win, Fighter * f, Enemy * e, Boss * b,
87 Path * p, int roomIndex, int enemyIndex,
88 int isBoss);
89void knightSpecial_Berserk(Rectangle * win, Fighter * f, Enemy * e, Boss * b,
90 Path * p, int roomIndex, int enemyIndex, int isBoss);
91void archerSpecial_Headshot(Rectangle * win, Fighter * f, Enemy * e, Boss * b,
92 Path * p, int roomIndex, int enemyIndex,
93 int isBoss);
94void archerSpecial_Quivercheck(Rectangle * win, Fighter * f, Enemy * e, Boss * b,
95 Path * p, int roomIndex, int enemyIndex,
96 int isBoss);
97void archerSpecial_Poisonshot(Rectangle * win, Fighter * f, Enemy * e, Boss * b,
98 Path * p, int roomIndex, int enemyIndex,
99 int isBoss);
100void archerSpecial_Fireshot(Rectangle * win, Fighter * f, Enemy * e, Boss * b,
101 Path * p, int roomIndex, int enemyIndex,
102 int isBoss);
103void mageSpecial_Fatewarp(Rectangle * win, Fighter * f, Enemy * e, Boss * b,
104 Path * p, int roomIndex, int enemyIndex, int isBoss);
105void mageSpecial_Powerup(Rectangle * win, Fighter * f, Enemy * e, Boss * b, Path * p,
106 int roomIndex, int enemyIndex, int isBoss);
107void mageSpecial_Spellstrike(Rectangle * win, Fighter * f, Enemy * e, Boss * b,
108 Path * p, int roomIndex, int enemyIndex,
109 int isBoss);
110void mageSpecial_Flamering(Rectangle * win, Fighter * f, Enemy * e, Boss * b,
111 Path * p, int roomIndex, int enemyIndex, int isBoss);
112void assassinSpecial_Grimdagger(Rectangle * win, Fighter * f, Enemy * e, Boss * b,
113 Path * p, int roomIndex, int enemyIndex,
114 int isBoss);
115void assassinSpecial_Leechknife(Rectangle * win, Fighter * f, Enemy * e, Boss * b,
116 Path * p, int roomIndex, int enemyIndex,
117 int isBoss);
118void assassinSpecial_Disguise(Rectangle * win, Fighter * f, Enemy * e, Boss * b,
119 Path * p, int roomIndex, int enemyIndex,
120 int isBoss);
121void assassinSpecial_Venomblade(Rectangle * win, Fighter * f, Enemy * e, Boss * b,
122 Path * p, int roomIndex, int enemyIndex,
123 int isBoss);
124void setSpecials(Fighter * f, Koliseo * kls);
125#endif // HELAPORDO_RAYLIB_BUILD
126#endif // HELAPORDO_CURSES_BUILD
127#endif // SPECIALS_H
Represents the entity initialised from a bossClass.
Definition game_core.h:1190
Represents the entity initialised from a enemyClass.
Definition game_core.h:1149
Represents the entity initialised from a fighterClass.
Definition game_core.h:1079
Holds the state of game progression.
Definition game_core.h:1343