void ConditionSpeed::addCondition(Creature* creature, const Condition* addCondition) { if(conditionType != addCondition->getType() || (ticks == -1 && addCondition->getTicks() > 0)) return; setTicks(addCondition->getTicks()); const ConditionSpeed& conditionSpeed = static_cast<const ConditionSpeed&>(*addCondition); int32_t oldSpeedDelta = speedDelta; mina = conditionSpeed.mina; maxa = conditionSpeed.maxa; minb = conditionSpeed.minb; maxb = conditionSpeed.maxb; speedDelta = conditionSpeed.speedDelta; outfits = conditionSpeed.outfits; changeOutfit(creature); if(!speedDelta) { int32_t min, max; getFormulaValues(creature->getBaseSpeed(), min, max); speedDelta = random_range(min, max); } int32_t newSpeedChange = speedDelta - oldSpeedDelta; if(newSpeedChange) g_game.changeSpeed(creature, newSpeedChange); }
void ConditionSpeed::addCondition(Creature* creature, const Condition* addCondition) { if(updateCondition(addCondition)){ setTicks( addCondition->getTicks() ); const ConditionSpeed& conditionSpeed = static_cast<const ConditionSpeed&>(*addCondition); int32_t oldSpeedDelta = speedDelta; speedDelta = conditionSpeed.speedDelta; mina = conditionSpeed.mina; maxa = conditionSpeed.maxa; minb = conditionSpeed.minb; maxb = conditionSpeed.maxb; if(speedDelta == 0){ int32_t min; int32_t max; getFormulaValues(creature->getBaseSpeed(), min, max); speedDelta = random_range(min, max); } int32_t newSpeedChange = (speedDelta - oldSpeedDelta); if(newSpeedChange != 0){ g_game.changeSpeed(creature, newSpeedChange); } } }
void ConditionSpeed::addCondition(Creature* creature, const Condition* condition) { if (conditionType != condition->getType()) { return; } if (ticks == -1 && condition->getTicks() > 0) { return; } setTicks(condition->getTicks()); const ConditionSpeed& conditionSpeed = static_cast<const ConditionSpeed&>(*condition); int32_t oldSpeedDelta = speedDelta; speedDelta = conditionSpeed.speedDelta; mina = conditionSpeed.mina; maxa = conditionSpeed.maxa; minb = conditionSpeed.minb; maxb = conditionSpeed.maxb; if (speedDelta == 0) { int32_t min; int32_t max; getFormulaValues(creature->getBaseSpeed(), min, max); speedDelta = uniform_random(min, max); } int32_t newSpeedChange = (speedDelta - oldSpeedDelta); if (newSpeedChange != 0) { g_game.changeSpeed(creature, newSpeedChange); } }
bool ConditionSpeed::startCondition(Creature* creature) { if(!speedDelta) { int32_t min, max; getFormulaValues(creature->getBaseSpeed(), min, max); speedDelta = random_range(min, max); } g_game.changeSpeed(creature, speedDelta); return ConditionOutfit::startCondition(creature); }
bool ConditionSpeed::startCondition(Creature* creature) { if(!Condition::startCondition(creature)) return false; if(speedDelta == 0) { int32_t min, max; getFormulaValues(creature->getBaseSpeed(), min, max); speedDelta = random_range(min, max); } g_game.changeSpeed(creature, speedDelta); return true; }