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
|
/*
* File: beam.cc
* Summary: Functions related to ranged attacks.
* Written by: Linley Henzell
*
* Modified for Crawl Reference by $Author$ on $Date$
*
* Change History (most recent first):
*
* <1> -/--/-- LRH Created
*/
#ifndef BEAM_H
#define BEAM_H
#include "externs.h"
dice_def calc_dice( int num_dice, int max_damage );
// Test if the to-hit (attack) beats evasion (defence).
bool test_beam_hit(int attack, int defence);
/* ***********************************************************************
* called from: bang - it_use2 - monstuff - mstuff2
* *********************************************************************** */
void fire_beam( struct bolt &pbolt, item_def *item = NULL );
// last updated 19apr2001 {gdl}
/* ***********************************************************************
* called from: beam
* *********************************************************************** */
bool nasty_beam( struct monsters *mon, struct bolt &beam );
// last updated 12may2000 {dlb}
/* ***********************************************************************
* called from: ability - it_use3 - item_use - mstuff2 - religion -
* spells - spells4
* *********************************************************************** */
void explosion( struct bolt &pbolt, bool hole_in_the_middle = false );
// last updated 22jan2001 {gdl}
/* ***********************************************************************
* called from: effects - spells2 - spells4
* *********************************************************************** */
int mons_adjust_flavoured( struct monsters *monster, struct bolt &pbolt,
int hurted, bool doFlavouredEffects = true );
/* ***********************************************************************
* called from: ability - item_use - spell
* returns true if messages were generated during the enchantment
* *********************************************************************** */
bool mass_enchantment( int wh_enchant, int pow, int who );
/* ***********************************************************************
* called from: fight - monstuff - mstuff2
* *********************************************************************** */
int mons_ench_f2( struct monsters *monster, struct bolt &pbolt );
/* ***********************************************************************
* called from: fight - monstuff - spells2
* *********************************************************************** */
void poison_monster( struct monsters *monster, kill_category who,
int levels = 1, bool force = false );
/* ***********************************************************************
* called from: fight - monstuff - spells - spells1 - spells2
* *********************************************************************** */
#if 0
void delete_cloud( int cloud );
void new_cloud( int cloud, int type, int x, int y, int decay );
void place_cloud(unsigned char cl_type, unsigned char ctarget_x, unsigned char ctarget_y, unsigned char cl_range);
#endif
/* ***********************************************************************
* called from: monstuff
* *********************************************************************** */
void fire_tracer( struct monsters *monster, struct bolt &pbolt );
bool check_line_of_sight( int sx, int sy, int tx, int ty );
/* ***********************************************************************
* called from: monstuff
* *********************************************************************** */
void mimic_alert( struct monsters *mimic );
void zapping( char ztype, int power, struct bolt &pbolt );
int affect(struct bolt &beam, int x, int y);
#endif
|