00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #include <actions/LaserParams.h>
00022 #include <lua/LUAUtil.h>
00023 #include <XML/XMLNode.h>
00024
00025 LaserParams::LaserParams() :
00026 hurtFirer_(false),
00027 color_(1.0f, 0.0f, 0.0f),
00028 totalTime_(1),
00029 minimumDistance_(10), maximumDistance_(200),
00030 minimumHurt_(34), maximumHurt_(40),
00031 hurtRadius_(2)
00032 {
00033 }
00034
00035 LaserParams::~LaserParams()
00036 {
00037 }
00038
00039 bool LaserParams::parseXML(XMLNode *accessoryNode)
00040 {
00041 if (!accessoryNode->getNamedChild("color", color_)) return false;
00042 accessoryNode->getNamedChild("hurtfirer", hurtFirer_, false);
00043
00044 return true;
00045 }
00046
00047 void LaserParams::parseLUA(lua_State *L, int position)
00048 {
00049 luaL_checktype(L, position, LUA_TTABLE);
00050
00051 minimumHurt_ = LUAUtil::getNumberFromTable(L, position, "minimumhurt", minimumHurt_);
00052 maximumHurt_ = LUAUtil::getNumberFromTable(L, position, "maximumhurt", maximumHurt_);
00053 minimumDistance_ = LUAUtil::getNumberFromTable(L, position, "minimumdistance", minimumDistance_);
00054 maximumDistance_ = LUAUtil::getNumberFromTable(L, position, "maximumdistance", maximumDistance_);
00055 hurtRadius_ = LUAUtil::getNumberFromTable(L, position, "hurtradius", hurtRadius_);
00056 totalTime_ = LUAUtil::getNumberFromTable(L, position, "totaltime", totalTime_);
00057 hurtFirer_ = LUAUtil::getBoolFromTable(L, position, "hurtfirer", hurtFirer_);
00058 }