void CIwGameModifierManager::Execute(IIwGameXomlResource* target, float dt)
{
	if (Modifiers.size() == 0)
		return;

	CIwList<IIwGameModifier*>	Removals;

	for (_Iterator it = begin(); it != end(); ++it)
	{
		if ((*it)->isActive())
		{
			if (!(*it)->isInitialised())
			{
				(*it)->InitModifier(target);
				(*it)->setInitialised(true);
			}
			else
			{
				if (!(*it)->UpdateModifier(target, dt))
				{
					(*it)->ReleaseModifier(target);
					Removals.push_back(*it);
				}
			}
		}
	}

	// Remove deleted modifiers
	for (_Iterator it = Removals.begin(); it != Removals.end(); ++it)
		removeModifier(*it);
}
   std::list <int> Location::tick()
   {
      //There are lots of things to do in this. There may be more to do here.

      std::list <int> decayedModifiers;

      //Finds decayed modifiers and marks them. Reduces the value of modifiers which are greater than 0.
      for (auto &iter : localEffects){
         if (iter.second == 0){
            decayedModifiers.push_front(iter.first);
         }
         //Reduces modifiers
         if (iter.second > 0){ iter.second -= 1; }
      }

      //Removes decayed modifiers.
      std::list<int>::const_iterator listIterator;
      for (listIterator = decayedModifiers.begin(); listIterator != decayedModifiers.end(); ++listIterator) {
         removeModifier(*listIterator);
      }



      return decayedModifiers;
   }
 VerEx & searchGlobal(bool enable) {
     if (enable) addModifier( 'g' );
     else removeModifier( 'g' );
     return (*this);
 }
 VerEx & searchOneLine(bool enable) {
     if (enable) removeModifier( 'm' );
     else addModifier( 'm' );
     return (*this);
 }
 VerEx & withAnyCase(bool enable) {
     if (enable) addModifier( 'i' );
     else removeModifier( 'i' );
     return (*this);
 }
Exemple #6
0
bool StatManagement::removeModifier(INamedObject *stat, Modifier *modifier)
{
	return removeModifier(stat->getShortName(), modifier);
}