00001 //////////////////////////////////////////////////////////////////////////////// 00002 // Scorched3D (c) 2000-2009 00003 // 00004 // This file is part of Scorched3D. 00005 // 00006 // Scorched3D is free software; you can redistribute it and/or modify 00007 // it under the terms of the GNU General Public License as published by 00008 // the Free Software Foundation; either version 2 of the License, or 00009 // (at your option) any later version. 00010 // 00011 // Scorched3D is distributed in the hope that it will be useful, 00012 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00014 // GNU General Public License for more details. 00015 // 00016 // You should have received a copy of the GNU General Public License 00017 // along with Scorched3D; if not, write to the Free Software 00018 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00019 //////////////////////////////////////////////////////////////////////////////// 00020 00021 #if !defined(__INCLUDE_WeaponLightningh_INCLUDE__) 00022 #define __INCLUDE_WeaponLightningh_INCLUDE__ 00023 00024 #include <weapons/Weapon.h> 00025 00026 class WeaponLightning : public Weapon 00027 { 00028 public: 00029 WeaponLightning(); 00030 virtual ~WeaponLightning(); 00031 00032 virtual bool parseXML(AccessoryCreateContext &context, 00033 XMLNode *accessoryNode); 00034 00035 fixed getConeLength() { return coneLength_; } 00036 fixed getSegLength() { return segLength_; } 00037 fixed getSegVar() { return segVar_; } 00038 fixed getSize() { return size_; } 00039 fixed getSizeVar() { return sizeVar_; } 00040 fixed getMinSize() { return minSize_; } 00041 fixed getSplitProb() { return splitProb_; } 00042 fixed getSplitVar() { return splitVar_; } 00043 fixed getDeathProb() { return deathProb_; } 00044 fixed getDerivAngle() { return derivAngle_; } 00045 fixed getAngleVar() { return angleVar_; } 00046 fixed getTotalTime() { return totalTime_; } 00047 fixed getSegHurt() { return segHurt_; } 00048 fixed getSegHurtRadius() { return segHurtRadius_; } 00049 const char *getSound() { return sound_.c_str(); } 00050 const char *getTexture() { return texture_.c_str(); } 00051 00052 // Inherited from Weapon 00053 void fireWeapon(ScorchedContext &context, 00054 WeaponFireContext &weaponContext, FixedVector &position, FixedVector &velocity); 00055 00056 REGISTER_ACCESSORY_HEADER(WeaponLightning, AccessoryPart::AccessoryWeapon); 00057 00058 protected: 00059 fixed coneLength_; 00060 fixed segLength_; 00061 fixed segVar_; 00062 fixed size_; 00063 fixed sizeVar_; 00064 fixed minSize_; 00065 fixed splitProb_; 00066 fixed splitVar_; 00067 fixed deathProb_; 00068 fixed derivAngle_; 00069 fixed angleVar_; 00070 fixed totalTime_; 00071 fixed segHurt_; 00072 fixed segHurtRadius_; 00073 std::string sound_; 00074 std::string texture_; 00075 NumberParser coneLengthExp_; 00076 NumberParser segLengthExp_; 00077 NumberParser segVarExp_; 00078 NumberParser sizeExp_; 00079 NumberParser sizeVarExp_; 00080 NumberParser minSizeExp_; 00081 NumberParser splitProbExp_; 00082 NumberParser splitVarExp_; 00083 NumberParser deathProbExp_; 00084 NumberParser derivAngleExp_; 00085 NumberParser angleVarExp_; 00086 NumberParser totalTimeExp_; 00087 NumberParser segHurtExp_; 00088 NumberParser segHurtRadiusExp_; 00089 00090 }; 00091 00092 #endif // __INCLUDE_WeaponLightningh_INCLUDE__
1.5.3