Exemple #1
0
void setEntityHealth(pent e, int hp){
    e->hp = hp;
    if(hp <= 0){
        killEntity(e);
        //deleteEntity(e); ?????
    }
}
Exemple #2
0
 void World::killEntities(std::vector<Entity>& entities)
 {
     for(auto& i : entities)
     {
         killEntity(i);
     }
 }
// uppdaterar alla objekt
void EntityManager::update()
{
	if(mPlayerLife > 0)
	{
		for(EntityVector::size_type i = 0; i < mCharacters.size(); ++i)
		{
			//if(!mCantMoveCharacters)
			//{
				mCharacters[i]->update(mPrimaryCharacter);
			//}
			//else
			//{
			//	Entity::EntityKind noCharacter = Entity::DOOR;
			//	mCharacters[i]->update(noCharacter);	
			//}
		}

		for(EntityVector::size_type i = 0; i < mEntities.size(); ++i)
		{
			if(mEntities[i]->getBaseKind() != Entity::CHARACTER)
			{
				mEntities[i]->update(mPrimaryCharacter);
			}
		}	

		updatePlayerLife();
		interact();
		killEntity();

		updatePlayerLife();
		lifeAndMaskPosition();

		updatePlayerPortrait();
		updateBackgroundParalax();
	}
	
	killPlayers();

	
}
Exemple #4
0
void fireMapTrigger(char *name)
{
	int i;
	char message[MAX_MESSAGE_LENGTH];

	if (strlen(name) == 0)
	{
		return;
	}

	for (i=0;i<MAX_TRIGGERS;i++)
	{
		if (trigger[i].inUse == TRUE && strcmpignorecase(trigger[i].triggerName, name) == 0)
		{
			trigger[i].count++;

			if (trigger[i].targetType == UPDATE_OBJECTIVE)
			{
				snprintf(message, MAX_MESSAGE_LENGTH, "%s (%d / %d)", _(trigger[i].targetName), trigger[i].count, trigger[i].total);

				freeMessageQueue();

				setInfoBoxMessage(60, 255, 255, 255, message);
			}

			if (trigger[i].count == trigger[i].total)
			{
				switch (trigger[i].targetType)
				{
					case UPDATE_OBJECTIVE:
						updateObjective(trigger[i].targetName);
					break;

					case ACTIVATE_ENTITY:
						activateEntitiesWithRequiredName(trigger[i].targetName, TRUE);
					break;

					case DEACTIVATE_ENTITY:
						activateEntitiesWithRequiredName(trigger[i].targetName, FALSE);
					break;

					case RUN_SCRIPT:
						runScript(trigger[i].targetName);
					break;

					case KILL_ENTITY:
						killEntity(trigger[i].targetName);
					break;

					case REMOVE_INVENTORY_ITEM:
						removeInventoryItemByObjectiveName(trigger[i].targetName);
					break;

					default:

					break;
				}

				trigger[i].inUse = FALSE;
			}
		}
	}
}
Exemple #5
0
static int luaKillEntity(lua_State *L){
    pent e = lua_touserdata(L, 1);
    killEntity(e);
    lua_pushvalue(L, 1);
    return 1;
}