summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/ghost.h
Commit message (Collapse)AuthorAgeFilesLines
* New spell: Spellforged ServitorDracoOmega2014-03-061-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | With the idea of introducing more summoning spells that a bit unique in some way, this is a level 7 Summoning/Conjurations spell which summons a single golem-like being that possesses a subset of the caster's own conjurations. The spell list is assembled deterministically, somewhat similar to player ghosts (though different in a number of regards). The first 3 spell slots draw from a 'primary' list containing direct conjurations like bolt of cold or poison arrow, while the next 2 are from a 'secondary' list which tends to contain AoE effects and cloud spells, as well as things like airstrike. Spells are selected roughly in order of level and power, with the player's higher spell skills having a small effect. In practice, I think the servitor will fairly transparently possess a selection of the player's better spells, without anyone needing to think much on how it arrived at this list. Many of the highest level spells (like fire storm and shatter) are excluded not only for power reasons, but also because a servitor using these could be downright dangerous to its caster. The main exception I made here was CBL, which is allowed (being both lower-level and often similarly dangerous when the player uses it, though I open to changing this).
* Make chimera more talkativePete Hurst2013-07-021-0/+3
| | | | | | Causes the three heads to announce themselves when the chimera is released; gives you a flavourful hint as to what the components are without specifically checking.
* Change chimera to use ghost_demon object and implement resistsPete Hurst2013-07-011-0/+6
| | | | | Currently resists are additive between the three different parts. Also the chimera now gets SInv if one of the parts has it.
* Moved the setting of Spectral Weapon stats to ghost code, like dancing.Ed Gonzalez2013-06-261-0/+1
| | | | | | | | | By initialising the weapon's stats using a ghost, more properties can be easily set. Also vault/wiz-mode placed spectral weapons now get appropriate stats, as if the spell had been cast at max power and max weapon skill. Spectral weapons still shouldn't be placed directly in normal games.
* Eradicate laboratory rats.Adam Borowski2013-06-101-7/+0
| | | | | | | | | | | Unlike st_'s purge which removed harmless renames because they had no C++-side code, these are bad precisely because they have C++ side code, and lots of it -- with a custom structure that's worse than if each of 10 labrat flavours had a separate mon-data entry, and none have a special ability to show for it. A rename costs a description and perhaps a tile, there's no maintenance burden.
* Revert most of the lev->flight patch (by code size, not functionality).Adam Borowski2012-11-131-1/+1
| | | | | | | | | | | This stops wands of paralysis, the Petrify spell, and nets from auto-killing anything that can fly (ie, a good part of later threats). Also, this fixes unwinged humanoids from getting wings in tiles and for other shape considerations. Unrelated fixes: message when flying up stairs, monsters picking items from deep water.
* Replace levitation with flight and remove controlled flight (elliott)Chris Campbell2012-11-071-1/+1
|
* Remove unnecessary includes from header files.Jay3.14152012-10-231-1/+1
| | | | | | | | | | For most header files, this only saves on having to recompile a small number of source files, but there are also a few headers where small changes would now take significantly less time. This is most obvious for the Tiles build for which the dependencies have been greatly reduced, so that the only additional includes when compared to console are strictly library or tile related.
* Use std namespace.Raphael Langella2012-08-261-7/+7
| | | | | | | | | | | | | I had to rename distance() (in coord.h) to distance2() because it conflicts with the STL function to compare 2 iterators. Not a bad change given how it returns the square of the distance anyway. I also had to rename the message global variable (in message.cc) to buffer. I tried to fix and improve the coding style has much as I could, but I probably missed a few given how huge and tedious it is. I also didn't touch crawl-gdb.py, and the stuff in prebuilt, rltiles/tool and util/levcomp.*, because I have no clue about those.
* Don't use objects with strange constructors for storing monster resists.Adam Borowski2012-07-241-2/+1
| | | | | | | | | | | | This is the same concept as in neunon's branch "smaller-binary", except it goes farther, getting rid of a list of objects with transposed resist types and levels. The old code had an array like: "+++: rC, rF. ++:rElec. -:rPois", which existed only in static constructors which then were converted again to a regular struct. It turns out the whole exercise is nearly pointless: savings are around 27K rather than neunon's 674K; apparently he uses an ANCIENT compiler on a Mac that can't handle static object initializers well.
* Declare an explicit type for colours.Adam Borowski2012-03-131-6/+6
| | | | | | | | | | An imperial buttload of places assumes these to be 8 bits, which makes it impossible to add support for 256 (or more!) colours. This commit tries to allow expanding it in the future; sadly, it is badly incomplete. At least, new code can use the new type. Also, beware of "branded" colours which use bits above 8 for inverse, underline, etc.
* Merge branch 'master' into unified_combat_controlRobert Burnham2011-10-251-3/+0
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: crawl-ref/source/Makefile.obj crawl-ref/source/dbg-scan.cc crawl-ref/source/decks.cc crawl-ref/source/describe.cc crawl-ref/source/directn.cc crawl-ref/source/evoke.cc crawl-ref/source/fight.cc crawl-ref/source/fight.h crawl-ref/source/ghost.cc crawl-ref/source/ghost.h crawl-ref/source/item_use.cc crawl-ref/source/items.cc crawl-ref/source/map_knowledge.cc crawl-ref/source/melee_attack.h crawl-ref/source/mon-abil.cc crawl-ref/source/mon-act.cc crawl-ref/source/mon-stuff.cc crawl-ref/source/monster.cc crawl-ref/source/monster.h crawl-ref/source/player.cc crawl-ref/source/player.h crawl-ref/source/shopping.cc crawl-ref/source/spl-damage.cc crawl-ref/source/spl-summoning.cc crawl-ref/source/spl-transloc.cc crawl-ref/source/stairs.cc crawl-ref/source/stuff.cc crawl-ref/source/tags.cc crawl-ref/source/traps.cc crawl-ref/source/xom.cc
| * Make some more functions static.Adam Borowski2011-08-261-3/+0
| |
* | mon_attack_flavour => attack_flavourRobert Burnham2011-06-211-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Replaces mon_attack_flavour with attack_flavour with the hopes that at some point in the future we might be able to use it instead of brands as a unified method of identifying a particular attacks' flavour. Alternatively, it might find a niche in player attacks that have flavour but are not actually brands (confusing touch). In addition, this adds attk_type, attk_flavour, and attk_damage to attack class. These variables have their value set (if the attacker is of atype() ACT_MONSTER) to the apropriate values of the mon_attack _def within melee_attack::melee_attack(..). This allows us to only create one instance of mon_attack_def and thereafter are free to reference the variables directly. This commit should allow for me to continue to merge monster_attack into the unified code line. This serves as a milestone, but presently most of the functionality of monster combat (and part of player combat as well) is certainly broken / non-existant (those code paths have been isolated from the line of exection, pending being written into the unified code).
* | mon_attack_type -> attack_typeRobert Burnham2011-06-151-1/+1
|/ | | | | | | | Since adding mon_attack_def to attack or melee_attack class would be bad, a compromise would be to take the facets of the struct and add them to the class for ease of reference. Right now they would only be useful for monster attacks, but in the future they could prove useful for differentiating player attacks (like trample) from normal player attacks.
* Make file headers doxygen-friendly, drop useless fields.Adam Borowski2011-03-281-7/+4
| | | | | | | "File:" is shown in your editor's status bar. "Written by:" was used only for the first person who changed a file. We got git for that now, and pre-DCSS history is so woefully inaccurate it doesn't really matter.
* [3280] Fix ghosts and Mara illusions not getting spells.Darshan Shaligram2011-01-291-0/+1
|
* Only define tile_offset_for_labrat_colour in Tiles builds.Johanna Ploog2011-01-051-3/+5
|
* Implement laboratory rats, using coolio's tiles as base.Jude Brown2011-01-051-0/+5
| | | | | | | | | | | Laboratory rats now have a variety of flavour: armoured, levitating, fire-breathing, vampiric, etc. They're mainly just a bit of fun and whimsy, but they do work properly and have an interesting theme. Hopefully someone will come up with a better vault to use them in! This commit also finished the previous block of monsters (fire crabs, porcupines, laboratory rats and bog mummies) that I added earlier.
* Display ghosts' xl rank, species and job when they comes into view.Johanna Ploog2010-11-291-0/+1
|
* Rename chars used as numbers to int8_t/uint8_t. Fix some other type usage.Adam Borowski2010-07-301-3/+3
| | | | | | | | | | This should help against the signed char problems, and is good for code readability. Now, if you have a char, it's either an untyped in-memory byte, or a symbol inside a string. Small numbers are instead [u]int8_t, ints, an enum type, or, in so many cases, bools. I didn't touch any of the tiles code, as it's currently broken and I don't want to risk making it unbroken harder.
* Make monster_info store all the player's knowledge on a monster (v3)Luca Barbieri2010-07-281-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | Changes in v3 (rob): - update for master (bleeding, deflect missiles, ...) - fix misled not ending - fix all monsters getting extreme fire resistance Changes in v2: - add operator = monster_info is changed from the monster list's structure to a general purpose structure storing player-known information about a monster. The plan is to make all the user interface code read data from moster_info, so that: 1. There is no risk of accidental leaks, since all the sensitive code is in one place 2. Complicated things like misled and fake monsters are correctly handled, and the code exists once 3. The structure can be serialized for client/server play, and the deserialized structure can be passed to the UI code (this is still theoretical) This will be done in a successive patch. Signed-off-by: Robert Vollmert <rvollmert@gmx.net>
* Update includes after the mon-util.h split.Robert Vollmert2010-01-221-2/+2
|
* Allow each dancing weapon to have its own statsStefan O'Rear2009-11-041-0/+1
|
* Implement [2889948]: In the console version, make (very) ugly thingDavid Lawrence Ramsey2009-10-311-1/+0
| | | | | corpses randomly cycle through all their available colors instead of always being (light)red.
* Simplify and display resistances for (very) ugly things.David Lawrence Ramsey2009-10-061-1/+2
|
* Make sure that all (very) ugly things in a band start with the sameDavid Lawrence Ramsey2009-10-061-1/+3
| | | | colour.
* Drop obsolete CVS last-committed headers ($Author$).Adam Borowski2009-10-061-2/+0
|
* Make (very) ugly things no longer heal all damage when they mutate.dolorous2009-09-191-1/+1
| | | | git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@10734 c06c8d41-db1a-0410-9941-cceddc491573
* Fix polymorphing of (very) ugly things: When polymorphed, they now dolorous2009-09-181-1/+1
| | | | | | | | | mutate into (very) ugly things of a different color. Also, shapeshifters can no longer take their forms, and they can no longer be made shapeshifters themselves. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@10718 c06c8d41-db1a-0410-9941-cceddc491573
* Implement part of [2837033]: Randomize colors, resistances, and attack dolorous2009-09-181-0/+6
| | | | | | | | types/flavors for ugly things. They now use the ghost_demon struct, expanded to account for these characteristics. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@10709 c06c8d41-db1a-0410-9941-cceddc491573
* Run some sanity checks when loading ghosts. If anything seems fishyj-p-e-g2009-05-261-0/+2
| | | | | | | | | | | | | | | | | | | | * don't load the ghost(s) * print an error message mentioning the bones file * don't delete the bones file, so players can attach it to a bug report The last point means that the player (or admin, in the case of the servers) has to delete a buggy bones file themselves, but the benefits of making tracking down bugs easier should outweigh that inconvenience. Add a new wizmode command that calls debug_stethoscope even if the game is not compiled in debugging mode. Also, Stone Soup 0.5 bones files are now officially incompatible with 0.4. (The changes to the spell ids cause ghosts casting spells to crash the game.) git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@9832 c06c8d41-db1a-0410-9941-cceddc491573
* Make player ghosts keep the gods they worshipped in life, if any (except dolorous2009-03-261-0/+1
| | | | | | | | | if they worshipped good gods, since player ghosts are undead and, hence, evil by good gods' reckoning). This gives them the proper title if Invocations was their highest skill in life. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@9550 c06c8d41-db1a-0410-9941-cceddc491573
* Setting all .h/.cc files in source to have a consistent keyword propset.ennewalker2009-01-041-1/+1
| | | | git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@8218 c06c8d41-db1a-0410-9941-cceddc491573
* Add whitespace fixes.dolorous2008-06-081-2/+2
| | | | git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@5590 c06c8d41-db1a-0410-9941-cceddc491573
* Batch of tiny changes for MSVC compiles.pauldubois2008-03-101-1/+1
| | | | | | | | | | | | | | | Most of these fall into the category: - don't use struct to refer to a class, and vice versa - msvc doesn't like unistd.h or dirent.h Doesn't fix all the struct/class problems; I think I'll silence those for now and move on because it's not all that important. Tested on OS X. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@3571 c06c8d41-db1a-0410-9941-cceddc491573
* [Bug 1907221] Add "Modified for Crawl Reference" statement and author to aj-p-e-g2008-03-081-0/+10
| | | | | | | | huge number of files. Also correct file name comments. No coding changes. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@3539 c06c8d41-db1a-0410-9941-cceddc491573
* Monsters get multilevel resists (incomplete). Monster data needs to bedshaligram2008-01-091-0/+52
adjusted per monster to hand out the right resists. The current MR_RES_FIRE gives one level of resistance only. Added a real ghost structure, discarded the old ghost values array. Adjusted bones file format so bones will work out-of-the-box with Hearse. Breaks bones format, older bones will be rejected. Fixed some maps with bad DEPTHs. Added more safe answers in Y/N prompts, added a check to make it less likely that Crawl will spin in a tight loop reading input from a closed tty. (Experimental) !a will override existing foe of friendlies in LOS. Blademasters no longer pick up stuff to throw (Erik). Zombies of swimming things are also swimming things. Currently applies only to zombies explicitly placed in .des files, since fish zombies cannot be generated otherwise (can of worms). Morgue is now saved before showing the inventory and other boring end-of-game stuff. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@3231 c06c8d41-db1a-0410-9941-cceddc491573