def combinedSpawner(pos, color, factionId):
    for _ in range(10):
        freePos = scramblePosition(pos, 0.4, 0.2)
        if not CollisionLogic.pointCollides(freePos):
            createUnit(freePos, color, factionId)
            break
    return ScheduledTaskResult.ContinueTask
def tryMove(entityId):
    coordinate = coreInstance.entities[entityId].pos
    friction = coreInstance.entities[entityId].friction
    deltaVector = coreInstance.entities[entityId].deltaVector

    savePos = coreInstance.entities[entityId].pos

    coreInstance.entities[entityId].pos = [x + y for x, y in zip(coordinate, deltaVector)]
    coreInstance.entities[entityId].deltaVector = [x * friction for x in deltaVector]
    saveDeltaVector = coreInstance.entities[entityId].deltaVector

    collidingVector = CollisionLogic.entityIsColliding_currently(entityId)
    if collidingVector:
        coreInstance.entities[entityId].deltaVector = [x * 0.5 for x in deltaVector]
        coreInstance.entities[entityId].pos = savePos
        coreInstance.entities[entityId].deltaVector = saveDeltaVector
        return collidingVector

    coreInstance.entities[entityId].deltaVector = saveDeltaVector
    return None