ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/server/spell_attack.C
(Generate patch)

Comparing deliantra/server/server/spell_attack.C (file contents):
Revision 1.97 by root, Fri Mar 26 00:53:26 2010 UTC vs.
Revision 1.100 by root, Fri Apr 9 02:45:17 2010 UTC

1/* 1/*
2 * This file is part of Deliantra, the Roguelike Realtime MMORPG. 2 * This file is part of Deliantra, the Roguelike Realtime MMORPG.
3 * 3 *
4 * Copyright (©) 2005,2006,2007,2008,2009 Marc Alexander Lehmann / Robin Redeker / the Deliantra team 4 * Copyright (©) 2005,2006,2007,2008,2009,2010 Marc Alexander Lehmann / Robin Redeker / the Deliantra team
5 * Copyright (©) 2002-2003,2007 Mark Wedel & Crossfire Development Team 5 * Copyright (©) 2002-2003 Mark Wedel & Crossfire Development Team
6 * Copyright (©) 1992,2007 Frank Tore Johansen 6 * Copyright (©) 1992 Frank Tore Johansen
7 * 7 *
8 * Deliantra is free software: you can redistribute it and/or modify it under 8 * Deliantra is free software: you can redistribute it and/or modify it under
9 * the terms of the Affero GNU General Public License as published by the 9 * the terms of the Affero GNU General Public License as published by the
10 * Free Software Foundation, either version 3 of the License, or (at your 10 * Free Software Foundation, either version 3 of the License, or (at your
11 * option) any later version. 11 * option) any later version.
1998 set_spell_skill (op, caster, spell, disease); 1998 set_spell_skill (op, caster, spell, disease);
1999 disease->stats.exp = 0; 1999 disease->stats.exp = 0;
2000 disease->level = casting_level (caster, spell); 2000 disease->level = casting_level (caster, spell);
2001 2001
2002 /* do level adjustments */ 2002 /* do level adjustments */
2003 if (disease->stats.wc) 2003 if (disease->stats.wc ) disease->stats.wc += dur_mod / 2;
2004 disease->stats.wc += dur_mod / 2; 2004 if (disease->magic > 0) disease->magic += dur_mod / 8;
2005 2005 if (disease->stats.maxhp > 0) disease->stats.maxhp += dur_mod;
2006 if (disease->magic > 0) 2006 if (disease->stats.maxgrace > 0) disease->stats.maxgrace += dur_mod;
2007 disease->magic += dur_mod / 8;
2008
2009 if (disease->stats.maxhp > 0)
2010 disease->stats.maxhp += dur_mod;
2011
2012 if (disease->stats.maxgrace > 0)
2013 disease->stats.maxgrace += dur_mod;
2014
2015 if (disease->stats.dam)
2016 {
2017 if (disease->stats.dam > 0)
2018 disease->stats.dam += dam_mod;
2019 else
2020 disease->stats.dam -= dam_mod;
2021 }
2022 2007
2023 if (disease->last_sp) 2008 if (disease->last_sp)
2024 { 2009 {
2025 disease->last_sp -= 2 * dam_mod; 2010 disease->last_sp -= 2 * dam_mod;
2011
2026 if (disease->last_sp < 1) 2012 if (disease->last_sp < 1)
2027 disease->last_sp = 1; 2013 disease->last_sp = 1;
2028 } 2014 }
2029 2015
2030 if (disease->stats.maxsp) 2016 if (disease->stats.dam ) disease->stats.dam += copysign (disease->stats.dam , dam_mod);
2031 { 2017 if (disease->stats.maxsp) disease->stats.maxsp += copysign (disease->stats.maxsp, dam_mod);
2032 if (disease->stats.maxsp > 0) 2018 if (disease->stats.ac ) disease->stats.ac += dam_mod;
2033 disease->stats.maxsp += dam_mod; 2019 if (disease->last_eat ) disease->last_eat -= dam_mod;
2034 else 2020 if (disease->stats.hp ) disease->stats.hp -= dam_mod;
2035 disease->stats.maxsp -= dam_mod; 2021 if (disease->stats.sp ) disease->stats.sp -= dam_mod;
2036 }
2037
2038 if (disease->stats.ac)
2039 disease->stats.ac += dam_mod;
2040
2041 if (disease->last_eat)
2042 disease->last_eat -= dam_mod;
2043
2044 if (disease->stats.hp)
2045 disease->stats.hp -= dam_mod;
2046
2047 if (disease->stats.sp)
2048 disease->stats.sp -= dam_mod;
2049 2022
2050 if (infect_object (walk, disease, 1)) 2023 if (infect_object (walk, disease, 1))
2051 { 2024 {
2052 new_draw_info_format (NDI_UNIQUE, 0, op, "You inflict %s on %s!", &disease->name, &walk->name); 2025 op->statusmsg (format ("You inflict %s on %s!", &disease->name, &walk->name));
2053 2026
2054 disease->destroy (); /* don't need this one anymore */ 2027 disease->destroy (); /* don't need this one anymore */
2055 walk->map->insert (get_archetype (shstr_detect_magic), x, y, op); 2028 walk->map->insert (get_archetype (shstr_detect_magic), x, y, op);
2056 return 1; 2029 return 1;
2057 } 2030 }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines