/* Cherrybomb.m Class definition. Copyright (C) 1995 David Flater. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include "cheezmud.h" @implementation Cherrybomb + new { self = [super new]; [self describe: "cherry": "a cherry": "the cherry": "This is actually a magic weapon that can be used only once."]; /* Damage is exaggerated because instead of being between zero and 30 */ /* it's 30 every time. */ [self setspeeddamage: 2: 60]; return self; } - kill: who: dobj { if ([dobj isdead]) return self; /* We have to prevent people from getting in extra hits by typing kill */ /* over and over. We only really want to hit if this function was called */ /* by the heartbeat. The heartbeat is nice enough to set a flag for us, */ /* since otherwise it would be hard to tell. */ if ([who checkkillflag]) { id owner_location; if (dobj == who) { [who clue: who]; return self; } if (++beatcount == speed) { owner_location = [who getlocation]; [owner_location emote: who: "throw the cherry at": "throws the cherry at": dobj: ""]; [owner_location echo: "The cherry EXPLODES!"]; [dobj hit: who: 30.0]; [owner_location theres_a_fight_going_on]; [self logout]; } } else { if (dobj == who) { [who echo: "If you want to delete your account, e-mail the mud admin!"]; [who clue: who]; return self; } [[who enemies] addIfAbsent: dobj]; } return self; } @end