| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Local copies of the git hooks, plus intructions on how to change them.
|
|
|
|
|
| |
Start of triggerable/function_machine merger: use triggerable class
TriggerableMessage for messages instead of message_machine.
|
|
|
|
| |
DgnTriggerer now handles the dungeon event player_move and player_los.
|
|
|
|
|
| |
Use a method-dispatch type mechanism to deal with the different types of
dungeon events, rather than a long series of "elseif"s.
|
| |
|
|
|
|
| |
undead.
|
|
|
|
|
|
|
| |
Tracer beams which used special_explosion didn't fold beam_cancelled
from the special explosion back into the beam proper, making it so that
if you cancelled out from firing an exploding ammo because the explosion
would catch you, it would still fire anyways.
|
|
|
|
| |
Let item specs understand the new(ish) brands "chaos" through "silver".
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In particular, don't flatten outer corners, so air elementalists
aren't hurt too badly. Also, start special casing rays that pass
through corners, though they don't currently work the way I want
for diagonals.
Should now be usable including reflections.
TODO
- Diagonal wall reflections, both for corner rays and diagonal
corridors.
- Reenable chaos beam munging.
- Fix test/los_maps.lua. It would be easy to make the test pass,
but I should really work out what the result should be first.
- Generally clean up reflections code -- it's a mess.
|
|
|
|
|
|
|
| |
Also recenter the cardinal direction rays.
Before, we didn't have centered rays going straight north/south
or east/west, which was awkward for shift-firing.
|
|
|
|
|
|
|
|
|
| |
Reflection is modelled on diamond-shaped features, with gaps
filled in as far as they don't affect LOS.
Working on a case by case analysis: After normalization, a ray
leaves cell * through the south-east diamond face. Then determine
the line of reflection in each case.
|
| |
|
| |
|
|
|
|
|
|
|
| |
For one, rename ray_def::advance_and_bounce to ray_def::bounce.
Then, pass a grid of bools for adjacent cells which states which
cells are considered solid (reflecting).
|
|
|
|
|
| |
1. Add function to reflect vector at a line.
2. Implement scalar multiplication as external operator.
|
|
|
|
|
| |
Seems sensible given they modify the ray, even if it's not really
something intrinsic to a ray.
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
ray_def should now deal with hitting corners gracefully, though the
raycasting will still discard such rays. If a ray hits a corner
between two diamonds, it will stay there, and calling ray_def::pos
will arbitrarily give one of the squares -- this is not optimal,
but these rays shouldn't usually show up anyway.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
* Adapt los_ray.
* Register rays using geom::ray.
* Change cellray comparison functions (remove slope_diff which
I didn't understand, add first_diag which prefers rays that
start on diagonals for easier meph cloud targetting)
The rays that are actually being cast may need changing. For now,
rays that hit diamond corners are simply discarded.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Think of the map tiled with squares (the cells).
Previously, a ray was blocked by any part of an opaque cell
except the very corners (to allow looking through diagonal
maps -- we can move through those after all).
In the new version, the rays are the same, but a dungeon feature
is only considered to occupy the the central "diamond": convex
hull of the mid points of the edges. The corners of the
diamond are considered part of the feature, so vertically or
horizontally adjacent walls still block.
This has some effect on LOS: It's a bit more permissive on
diagonals and around corners.
The main advantage is that most rays will now have a footprint
(the sequence of cells it passes through) that is like the
old anti-aliased rays, without requiring any ray munging.
TODO:
* Make sure we don't hang because of stopping at a corner.
* Implement proper bouncing.
* Reenable setting/getting degrees for chaos beams.
|
|
|
|
|
| |
Remove the unsure fudging. This does introduce the possiblity
of hanging in place.
|
|
|
|
|
| |
Its point is to allow intersecting rays with grid lines and
advancing rays from one cell to the next.
|
|
|
|
| |
These were used by the temporarily disabled chaos beams.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, rays were always cut short at corners: If a ray really
went like
.....
@**..
..***
.....
it was cut short (for find_ray/targetting/shooting purposes) to
.....
@*...
..***
.....
Note that a wall at the removed cell would still block the given
ray!
This makes ray footprint length matter, so rays are sorted to
prefer those that pass through fewer cells.
However, this gives quite a few ugly beams, in particular around
corners.
|
|
|
|
| |
Disabling the LOS lua bindings while ray.h changes.
|
|
|
|
| |
The new ray_def won't have set/get_degrees for a while.
|
|
|
|
|
| |
This was causing a crash through monsters::mon_see_cell.
Also special case monster position there.
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Move the line for evil_items higher up in menu_colours.txt so that
artefact weapons with evil brands, the lantern of shadows, haste
items etc. get colored as evil for the appropriate gods.
|
|
|
|
|
| |
ID the lantern of shadows when it first creatures a shadow, consider
that first shadow an unintentional act for conduct purposes.
|
|
|
|
| |
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>
|
|
|
|
|
|
| |
Consolidated the various setup functions into one call. Also fix a typo'ed glyph in sewer_big_baddie. The new map has a giant slug.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>
|
|
|
|
| |
convenience function in the actor interface.
|
|
|
|
| |
Unidentified evil items were getting flagged as disliked by Feawn.
|
|
|
|
|
|
|
|
| |
Collapsing Caverns now places some smoke after collapsing one of the entrances.
New Volcano: Overflowing lava lake. A lake surrounded by a scattering of loot, and every (max 20) turns, the lake overflows. Eventually, it will fill the cavern, destroy all the loot, and temporarily strand the player. The lava will recede, however, offering a way out.
Signed-off-by: Darshan Shaligram <dshaligram@users.sourceforge.net>
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Collapsing Caverns Volcano map now in line with original design (all chambers and possible treasures visible, though threat not). It also now uses synchronised FunctionMachines, meaning that saving and reloadnig does not collapse all entrances.
Signed-off-by: Darshan Shaligram <dshaligram@users.sourceforge.net>
|
|
|
|
|
|
| |
If you have anything on your shopping list, pressing '$' will display it
as a menu. You can then select a thing from the menu, either to travel
to it or examine it, like with the stash tracker menu.
|
|
|
|
|
|
|
|
|
|
| |
New binding for coord.cc's distance functions (dgn.distance(x1, y1, x2, y2)), lua function "point_in_radius", accepts two dgn.point functions and a radius and returns true if point1 is in radius around point2.
Extensive tweaks to FogMachine warning messages: most now accept a "see function" as the final parameter, which should take two parameters: an x and a y. The function should return true if the player can "see" this point.
Finally, tweaks to Volcanoes: utilise see_function and dgn.point_in_radius to provide better warning for lake. Utilise greensnark's new slave/master system for chaining FogMachines together in Bunker and Village.
Signed-off-by: Darshan Shaligram <dshaligram@users.sourceforge.net>
|
|
|
|
|
|
| |
creatures affected are ugly things, giant orange brains, shining eyes, pulsating lumps and most notably orbs of fire.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>
|
| |
|
|
|
|
|
|
|
| |
A lot of monstuff.cc was moved into mon-abil.cc (monster abilities),
mon-act.cc (the main monster loop), mon-behv.cc (monster behaviour) and
mon-cast.cc (monster spells). mstuff2.cc was completely merged into
other files.
|
| |
|